Відновити передачу одного файлу rsync


22

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

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

Але з --додаток, rsync починається з того, що залишилося минулого разу.

Я розгублений, коли побачив на сторінці сторінки - часткове, --інстанційне або --додаток, мабуть, стосується відновлення копіювання з того, що залишилося минулого разу. Чи може хтось пояснити різницю? Чому - часткові або - місця не працюють для відновлення копії? Чи правда, що для відновлення копії rsync повинен працювати з опцією --append?

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

Дякую та з повагою!


Моє розуміння того, як працює rsync, обмежене, але щоб відповісти на останнє запитання. Якщо копію не завершено, rsync повинен відновити копію. Я вважаю, що rsync хеш-файли таким чином, щоб початкова частина файлу була однаковою, а копіювала решту частину файлу.
Скотт Маккленінг

Відповіді:


25

Переглядаючи кілька сторінок для rsync:

--append
Це змушує rsync оновлювати файл, додаючи дані на кінець файлу, що передбачає, що дані, які вже є на стороні прийому, ідентичні початку роботи файлу на стороні відправки.

--inplace
Цей параметр змінює, як rsync передає файл, коли його дані потребують оновлення: замість методу за замовчуванням створити нову копію файлу та перемістити її на місце, коли вона завершена, rsync замість цього записує оновлені дані безпосередньо в файл призначення.

--partial
За замовчуванням rsync видалить будь-який частково переданий файл, якщо передача буде перервана. У деяких випадках бажано зберігати частково передані файли.

Здається, якщо файл дуже великий, ви хочете використовувати --partial --append. ( --appendмається на увазі --inplace) Якщо цей великий файл зміниться, тоді падіння --appendі rsync перевірять початок файлу, щоб переконатися, що він теж відповідає вихідному файлу. --inplaceмені здається небезпечним, за винятком випадків, коли ви rsyncing великий файл, ви не хочете, щоб rsync створив новий тимчасовий файл початкової частини, продовжуйте передачу, а потім видаліть старий файл, щоб поставити новий файл на місце. Передача відбуватиметься швидше, якби ви могли використовувати той самий файл, не кажучи вже про дисковий простір, необхідний для передачі, було б менше.

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

Я сподіваюся, що це допомагає.


1
Ви можете подивитися цей звіт про помилку: list.samba.org/archive/rsync/2012-June/027615.html
Стефан Шмідт

Хороший момент щодо використання швидшого cp за замовчуванням та rsync для "ремонту" зламаного процесу cp! Охайний :)
Самуель Лампа
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.