Я пытаюсь синхронизировать файлы между двумя машинами с помощью rsync, но кажется, что копируются все файлы независимо от времени изменения файла. Два последовательных вызова команды дают одинаковые результаты, поэтому она явно нарушена.
Рассматриваемая команда:
rsync -r local/path user@host:/remote/path -v
Локальная файловая система - ext4, а удаленная - ext3. Я подозреваю, что проблема здесь, так как у меня были похожие проблемы, когда я пытался синхронизировать файлы между той же системой ext3 и диском NTFS. Конвертация последнего в ext3 решила проблему.
На этот раз я не могу прибегнуть к конверсии. Кто-нибудь знает точный источник проблемы и возможные решения?
rsync по умолчанию не копирует файлы в зависимости от времени их модификации и размера.
Если вы не используете -t
в командной строке rsync не сохранит время модификации, и проверка размера + времени, конечно же, завершится ошибкой.
Также существует большая вероятность, что точность временных меток ваших разных файловых систем вызывает проблему - ext4
поддерживает микросекунды, в то время как ext3
ограничено секундами.
Попробуйте добавить --modify-window=1
в командную строку, чтобы rsync обрабатывал временные метки с точностью до одной секунды.
В качестве альтернативы вы можете дать ему -c
для принудительного подсчета контрольных сумм файлов, но это, конечно, будет намного медленнее, чем проверка размера mtime +, даже если это сэкономит вам полосу пропускания.