rsync претендует на разные файлы, но diff нет?

У меня есть файл как локально, так и на сервере. Сначала я попробую запустить rsync в режиме «сухой», чтобы узнать, есть ли какие-то различия между файлами:

 $ rsync -aP --dry-run USER@192.168.0.55:/home/dir . USER@192.168.0.55's password: receiving incremental file list dir/myfile.txt 

Это, по-видимому, означает, что файл dir/myfile.txt отличается, так как он будет обновлен. Затем я проверяю те же файлы с помощью diff :

 $ ssh USER@192.168.0.55 'cat /home/dir/myfile.txt' | diff --report-identical-files - dir/myfile.txt USER@192.168.0.55's password: Files - and dir/myfile.txt are identical 

Значит, файлы идентичны, по-видимому.

Почему тогда rsync хочет обновить этот файл – и как я могу подтвердить причину из командной строки?

2 Solutions collect form web for “rsync претендует на разные файлы, но diff нет?”

rsync сообщит об изменениях для

  • различия в разрешениях
  • временные метки
  • содержание (и размер файла)

В комментариях @roaima отметил, что есть возможность дать краткое изложение этих изменений на странице руководства rsync :

 -i, --itemize-changes output a change-summary for all updates 

Вы можете счесть это полезным, хотя краткое изложение краткое и (в имеющейся у меня версии) сообщает только тип (файл, ссылку или каталог) и имя . Вот что я вижу с rsync 3.0.9-4 и 3.1.1-3 на моем Debian 7 и тестовых машинах:

 cd+++++++++ backup-invisible-island/ >f+++++++++ backup-invisible-island/.bash_history cL+++++++++ backup-invisible-island/conf -> ../system/invisible-island.net/conf cL+++++++++ backup-invisible-island/statistics -> ../system/invisible-island.net/statistics cd+++++++++ backup-invisible-island/anon_ftp/ cL+++++++++ backup-invisible-island/anon_ftp/AdaCurses -> pub/AdaCurses cL+++++++++ backup-invisible-island/anon_ftp/DEBS -> pub/DEBS cL+++++++++ backup-invisible-island/anon_ftp/GIT -> pub/GIT 

Для моего собственного использования изменения временных меток для каталогов относительно неважны. Я использую скрипт, который показывает только файлы, которые были изменены:

rsync: показывать, когда новый файл в пункте назначения должен быть перезаписан

Rsync синхронизирует файлы, если только они не могут решить, что они одинаковы, не сравнивая их содержимое. Он может синхронизировать файл и понимать, что нет никаких различий, если он не мог сказать, что файлы идентичны без проверки содержимого.

По умолчанию rsync решает, что два файла идентичны (и, таким образом, пропускают чтение их содержимого), если они имеют одинаковый размер и одну и ту же метку времени.

Наиболее распространенная причина, по которой два файла обрабатываются как разные, когда они идентичны, состоит в том, что они имеют одинаковое содержимое, но разные временные метки, поскольку файл был скопирован в прошлом, а метка времени на копии – это дата копии, а не временная метка исходного файла. Например, файл может быть скопирован с помощью scp без -p , с rsync без -p или -a , загруженным веб-браузером и т. Д.

Если временные метки отличаются друг от друга, то rsync необходимо синхронизировать файл так или иначе, поскольку вы сказали ему синхронизировать метаданные ( -a ). Таким образом, листинг в rsync -n совершенно оправдан: rsync имеет работу. Синхронизация времени – это хорошая идея, потому что это единственный способ организовать, что будущие прогоны rsync будут знать, что делать нечего.

  • Bash, чтобы получить результат передачи rsync и закрепить его как каталог в исходном каталоге
  • RYSNC над SSH не работает для ограниченной оболочки
  • backup / on файловая система ntfs зашифрована
  • Почему сбой Rsync с Broken pipe (32), ошибка в сокете IO (код 10) в io.c (820)?
  • rsync-сервер и клиентская проблема
  • Запретить пустую электронную почту rsync на cron
  • Как запустить inetd при запуске в OpenBSD?
  • Некоторые папки всегда отсутствуют с помощью Rsync на сервере
  • Почему, если вы не укажете --backup-dir, будет подразумеваться опция -omit-dir-times?
  • Как я могу дать пользователю возможность использования CAP_MKNOD?
  • scp не может загружать / скачивать файлы, даже если ssh работает
  • Linux и Unix - лучшая ОС в мире.