rsync начать с начала после отключения питания


0

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

Затем машина неожиданно отключается для отключения питания.

После того, как я снова запускаю компьютер, кажется, что rsync синхронизирует большой файл с начала, но я обнаружил, что один файл уже синхронизирован около 60% (1G), что не так в моем использовании rsync?

Команда, которую я использовал:

rsync --partial -av -r --progress user@remote /local-dir

Ответы:


1

Как сказал Тим, это звучит нормально; rsync будет знать, что у него есть файл, который, по-видимому, является частичной копией удаленного файла, но он все равно должен проверить, что этот файл на самом деле является файлом, из которого вы копируете.

Выполняя эту проверку, он покажет количество байтов файла, который он «передал», поэтому он будет выглядеть так, как будто он снова копирует файл - но если вы посмотрите на скорость передачи, она должна быть намного быстрее чем было бы возможно по всей сети. В конечном итоге rsync преодолеет уже скопированные байты и найдет новые байты, которые необходимо передать по сети, и тогда вы увидите замедление скорости.

Короче говоря, я думаю, что вас смущает вывод rsync, поскольку он не различает «байты, передаваемые по сети» и «байты, передаваемые просто путем проверки соответствия локальной копии удаленной копии»


0

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

Флаг -u заставляет rsync посмотреть время изменения файла; если вы добавите это, то должны пропустить файлы, которые не изменились в источнике.


Я знаю, что вы имеете в виду, rsync будет использовать какой-то другой способ сравнения локальных и удаленных файлов. Но мой вопрос немного другой, временный файл (файл для rsync очень большой, поэтому rysnc сохраняет его локальным, так как сначала tmp первым) не продолжается следующим rsync (перезапускается для отключения питания). Может быть, это ошибка для rsync, но я не уверен.
Сэм Ляо

0

Просто переименуйте временный файл (.somethingXYZ) в правильное имя файла (что-то) из удаленного источника.

Тогда rsync определенно загрузит только недостающие материалы.

(Если вы посмотрите папку при запуске rsync, вы увидите, что генерируется новый файл .somethingABC, который будет увеличиваться на десятки МБ / с ... потому что rsync будет читать локальный файл "наполовину готово" вместо загрузки это снова из удаленного источника по сети).


0

Вы можете заставить rsync проверить контрольную сумму файла и скопировать только оставшиеся данные с помощью следующей команды.

rsync -av --progress --checksum --inplace --no-whole-file SOURCE DESTINATION

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.