Проверяет ли rsync копии файлов на локальных дисках?
Я использую rsync для резервного копирования локального ext3 HD на моем ноутбуке на ext4 HD, подключенный через USB к ноутбуку. Я предполагаю, что rsync рассматривает оба этих HD как локальные, поэтому мне интересно, выполняет ли rsync какую-либо проверку скопированных файлов.
Глядя на справочную страницу, кажется, что это так ("Обратите внимание, что rsync всегда проверяет, что каждый переданный файл был правильно восстановлен на принимающей стороне, проверяя контрольную сумму всего файла, которая генерируется при передаче файла, но эта автоматическая после Проверка при передаче не имеет ничего общего с опцией перед передачей "Нужно ли обновлять этот файл?".), но в StackExchange это противоречит. Так что мне интересно, мне нужно сделать проверку самостоятельно? И если так, я должен использовать diff
или же rsync -c
после фактического выполнения rsync?
Насколько я понимаю, проверка, выполняемая rsync, является только проверкой передачи файла, а не записи файла на диск. Насколько я могу судить, проверка записи файла на диск оставлена на усмотрение драйвера / файловой системы. Это достаточно безопасно? Может ли ext4 обнаруживать и предупреждать, если запись не удалась? И rsync сообщит об этом?
Поскольку это больше вопрос проверки данных и возможного повреждения данных, я вставил еще пару тегов, чтобы помочь моим постам быть прочитанными нужными людьми. Я также попытался немного расширить сам вопрос.
2 ответа
Это достаточно безопасно?
Я бы предположил, да. Если ты хочешь rsync
чтобы сделать проверку вам нужно запустить rsync -c
после копирования, чтобы вы могли иметь дополнительную проверку с помощью rsync
, Или используйте md5sum для файлов.
Может ли ext4 обнаруживать и предупреждать, если запись не удалась?
Да. Мы говорим о драйверах и файловой системе, поэтому ошибка любого из них приведет к коду выхода. Конечно, здесь есть худший сценарий: если драйвер / файловая система неисправна, код выхода может быть ошибочно отправлен как правильный. Я бы не стал полагать, что это правильно, и использую инструмент, такой как md5sum, чтобы проверить результаты самостоятельно.
И rsync сообщит об этом?
Как только ошибки получающего конца вышли, rsync
,
Упомянутая вами часть справочной страницы связана с опцией -c. Как человек читает в начале
Rsync находит файлы, которые необходимо передать, используя алгоритм lqquick checkrq (по умолчанию), который ищет файлы, которые изменились по размеру или за время последнего изменения. Любые изменения в других сохраненных атрибутах (в соответствии с параметрами) вносятся в целевой файл непосредственно, когда быстрая проверка показывает, что данные файла не нуждаются в обновлении.
с опцией -c он проверяет, имеют ли два файла одинаковый размер, и, если это так, проверяет контрольные суммы двух.
rsync также проверяет передачу файла через сеть, а не на диск. Если вы хотите убедиться, что ваши данные не повреждены, вы можете использовать такие утилиты, как md5sum.
в качестве примечания: я не думаю, что эта процедура квалифицируется как "инкрементное резервное копирование", поскольку инкрементные резервные копии сохраняют различия в системе по сравнению с более ранним резервным копированием. Я думаю, что "инкрементная передача" более уместна.