Назад | Перейти на главную страницу

Будет ли флаг обновления в файлах передачи rsync, если метка времени идентична в источнике и месте назначения? Документация неясна

Я хочу передать только измененные и новые файлы, используя rsync в Ubuntu 14.04. Я не хочу переносить все каждый раз. Я не беспокоюсь о том, чтобы проверить, действительно ли изменилось содержимое файлов. Подобные сообщения существуют, но я не уверен, потому что документация не соответствует тому, что говорится в этих сообщениях.

Документация в rsync говорит:

-u, --update

Это заставляет rsync пропускать любые файлы, для которых целевой файл уже существует и имеет дату более позднюю, чем исходный файл.

http://ss64.com/bash/rsync_options.html

редактировать: Нашел другую (возможно, более официальную) страницу документации. Он говорит:

-u, --update пропускать более новые файлы на ресивере

https://download.samba.org/pub/rsync/rsync.html

Я считаю, что это плохо сформулировано. Во-первых, на первом написано «свидание». Я предполагаю, что это на самом деле означает «отметка времени». Во-вторых, что более важно, это, по-видимому, означает, что файл как в источнике, так и в месте назначения с одной и той же меткой времени будет повторно передан. В документации четко сказано, что он будет пропускать файл только в том случае, если в целевом файле есть более новая (то есть более поздняя) отметка времени (T_d), чем метка времени исходного файла (T_s), подразумевая, что он будет передаваться, когда целевой файл старше или равен исходному файлу: Пропуск передачи, если T_d > T_s означает, что он переносится, когда T_d <= T_s.

Это важный вопрос для меня, потому что, если вы хотите перенести все новые и измененные файлы из исходной папки в целевую папку с минимальными затратами времени (сеть / io / cpu / time), флаг обновления может просто повторно передать все каждый раз.

А может я что-то упускаю, или что-то не понимаю?

(Этот пост был отклонен на stackoverflow.com из-за того, что он не по теме. Добавляем его и ответ здесь на случай, если он может помочь людям в будущем.)

Нашел следующее в man расширяя флаг:

-u, --update

Это заставляет rsync пропускать любые файлы, которые существуют в месте назначения и имеют более новое время изменения, чем исходный файл. (Если существующий файл назначения имеет время модификации, равное времени изменения исходного файла, он будет обновлен, если размеры отличаются.)

https://download.samba.org/pub/rsync/rsync.html

Таким образом, в равном случае проверяется размер файлов и передается только в том случае, если они различны. Я в порядке с этим.