Моя цель: учитывая список файлов на локальном сервере, показать любые отличия от файлов с одинаковым абсолютным путем на удаленном сервере; например сравните локальный /etc/init.d/apache с тем же файлом на удаленном сервере.
«Разница» для меня означает разную контрольную сумму. Меня не волнует время модификации файла. Я тоже не хочу синхронизировать файлы (пока); показывать только различия.
у меня есть rsync 3.0.6 как на локальном, так и на удаленном серверах, которые должны иметь возможность делать то, что я хочу. Однако он утверждает, что локальные и удаленные файлы, даже с идентичными контрольными суммами, все равно различны.
Вот командная строка:
$ rsync --dry-run -avi --checksum --files-from = / home / me / test.txt --rsync-path = "cd / && rsync" / me @ remote: /
где:
Бег cksum на /etc/init.d/apache на обоих серверах дает одинаковый результат. Файлы такие же.
Тем не мение, rsync вывод:
me@remote's password:
building file list ... done
.d..t...... etc/
cd+++++++++ etc/init.d/
<f+++++++++ etc/init.d/apache
sent 93 bytes received 21 bytes 20.73 bytes/sec
total size is 2374 speedup is 20.82 (DRY RUN)
Коды вывода (см. http://www.samba.org/ftp/rsync/rsync.html) означает, что rsync думает
Я не понимаю, как с параметром --checksum и файлами с одинаковыми контрольными суммами rsync должен думать, что они разные. (Я пробовал использовать другие файлы с одинаковым временем модификации, и эти файлы не помечены как разные.)
Я запустил это в / и убедился (AFAIK), что он запускается удаленно в /, поэтому даже относительные пути будут правильными.
Я запустил rsync с -avvvi для получения дополнительной информации об отладке, но не увидел ничего примечательного.
Мне любопытно:
Так как «-a» эквивалентно «-rlptgoD», тогда да, он все еще смотрит на время модификации («-t»).
Попробуйте заменить «-a» на «-rlpgoD» и посмотрите, как это пойдет.
это может быть проблема с разрешениями. есть ли у "me @ remote" разрешение на чтение /etc/init.d/apache на удаленном сервере?
вам может потребоваться использовать параметр --fake-super либо на удаленном rsync, либо на локальном rsync, либо на обоих.
каталог имеет разное время создания / изменения / доступа, владельцев или разрешения ... не используйте параметр -a и попробуйте просто -r
удачи