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

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

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

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

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

4 ответа4

1

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

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

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

0

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

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

0

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

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

0

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

Тогда rsync ОБЯЗАТЕЛЬНО загрузит только недостающие материалы.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .