21

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

Я попытался использовать опцию --partial или --inplace, но вместе с --progress я обнаружил, что rsync с --partial или --inplace фактически начинается с начала, а не с того, что было оставлено в прошлый раз. Ранняя остановка rsync и проверка размера полученного файла вручную также подтверждают то, что я нашел.

Но с --append rsync запускается с того, что осталось в прошлый раз.

Я запутался, когда увидел на странице справочника --partial, --inplace или --append, похоже, что это связано с возобновлением копирования с того, что осталось в прошлый раз. Может кто-нибудь объяснить разницу? Почему --partial или --inplace не работают для возобновления копирования? Правда ли, что для возобновления копирования rsync должен работать с параметром --append?

Также, если частичный файл был оставлен mv или cp, а не rsync, будет ли rsync --append правильно?

Спасибо и всего наилучшего!

1 ответ1

25

Глядя на некоторые страницы для rsync:

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

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

--partial
По умолчанию rsync удалит любой частично переданный файл, если передача прервана. В некоторых случаях более желательно сохранить частично переданные файлы.

Похоже, если файл очень большой, вы можете использовать --partial --append . (--append подразумевает --inplace) Если этот большой файл изменится, то --append и rsync проверит начало файла, чтобы убедиться, что он тоже совпадает с исходным файлом. --inplace для меня звучит опасно, за исключением того, что если rsyncing большой файл, вы не хотите, чтобы rsync создал новый временный файл начальной части, продолжите передачу, затем удалите старый файл, чтобы поместить новый файл на место , Передача прошла бы быстрее, если бы вы могли использовать тот же файл, не говоря уже о том, что дисковое пространство, необходимое для передачи, было бы меньше.

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

Надеюсь, это поможет.

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