Проверяет ли rsync различия по сети?

Пожалуйста, попробуйте:

output | awk '{print gensub("[^0-9]*","","g")  " " $0 }' | sort -n | awk '{$1=""; print $0}' | sed 's/^ //g'

Это не самое элегантное решение, но оно работает.

1
24.11.2020, 18:09
2 ответа

Ответ на ваш главный вопрос — твердое «Да». Rsync, будь то по сети, от диска к диску или из папки в папку, проверяет существующие файлы и обновляет только те, которые изменились.

Изman rsync:

Rsync finds files that need to be transferred using a "quick check" algorithm (by default) that looks for files that have changed in size or in last-modified time. Any changes in the other preserved attributes (as requested by options) are made on the destination file directly when the quick check indicates that the file’s data does not need to be updated.

У rsync даже больше возможностей, чем описано, поскольку он может обнаруживать различия в файле и обновлять их. В качестве примера см. страницы тестирования Ubuntu, где вы выполняете rsync ежедневные сборки.iso для тестирования.

Небольшой материал для чтения:

Как использовать Rsync для синхронизации новых или измененных/модифицированных файлов в Linux.
Как работает rsync.
Руководство по rsync.

Если вы читаете какие-либо из этих страниц, последняя, ​​вероятно, самая важная. Это точно показывает, насколько универсально приложение на самом деле.

1
18.03.2021, 22:47

Or is the comparison somehow made without sending the file?

rsyncНЕ никогда не отправит файл для сравнения. Алгоритм по умолчанию проверяет, изменился ли размер или время последней модификации, чтобы решить, нужно ли передавать файл.

Но вы можете быть более строгим и выполнить, например, проверку контрольной суммы (множество алгоритмов на выбор )с помощью -cили быть более расслабленным и просто проверить размер с помощью --size-only. Это только два варианта, полный список можно найти на справочной странице.

1
18.03.2021, 22:47

Теги

Похожие вопросы