rsync преко VPN-а: нови покушај који поново користи прекинути пренос
Прекинут тунел завршава везу, не податке. Задржите део са --partial-dir, покрените поново исту копију и проверите датотеку пре објављивања.
Ваше отпремање се зауставља на четири гигабајта архиве од дванаест гигабајта, а навика научена од менаџера за преузимање каже да притиснете настави. rsync неће наставити TCP ток, јер је тај ток нестао са последњим поновним преносом тунела. Оно што може да уради јесте да задржи бајтове које је већ примио и да их употреби као основу за следећи покушај, што је други механизам са другим скупом правила. Заставице које изаберете одређују да ли ће се то поновно коришћење уопште догодити.
Нови покушај обнавља стање, не наставља ток
Када SSH сесија падне, на удаљеној страни остаје само оно што је успело да се упише на диск, и ништа друго. Нема токена сесије за поновно прикључивање ни редног броја за поновно пуштање. Следеће покретање отвара нову везу, поново чита извор и пита примаоца шта већ има.
Управо то последње питање објашњава зашто се делимична датотека исплати чувати. Копија код примаоца даје rsync-у нешто за поређење, а алгоритам шаље само оне разлике које може да препозна. То је ипак нов пренос метаподатака и нов пролаз кроз извор, па је уштеђено време сразмерно томе колико се датотеке поклапа, а не томе докле је стигла претходна веза. Ако прималац ништа није задржао, следећи покушај је пуна копија, без обзира колико је гигабајта први пренео.
Одлучите где живи део који се може поново употребити
Подразумевано понашање уписује делимичну датотеку на одредишну путању, што чини напола уписану архиву видљивом под коначним именом. --partial-dir је премешта у директоријум по вашем избору, а приручник тај директоријум описује као сачуван за коришћење као подаци од стране каснијег преноса. Релативно име се разрешава унутар одредишног директоријума, што је управо оно што желите када два краја могу имати различит распоред.
rsync -e ssh --partial-dir=.rsync-partial --info=progress2 -- \
large-archive.bin [email protected]:/srv/incoming/
Редослед је важан и на одредишту: делимичном директоријуму треба довољно места за део, а волумену довољно места и за завршену датотеку. Пуњење циљног волумена на средини преноса ствара грешку која изгледа као мрежни проблем али није, и може да остави сачувани део одсеченим. Проверите слободан простор на пријемном хосту пре почетка покретања, а не после неуспеха. Неколико секунди са df -h преко исте SSH путање је најјефтинији могући тест плана.
Дозволе су мања, али стварна брига. Делимични директоријум у који могу да пишу неповезани налози омогућава неком другом да замени садржај који ће ваше следеће покретање третирати као већ примљен. Држите га у власништву налога за пренос и не стављајте га тамо одакле објављују друге услуге.
Покрените исту копију, не паметнију
Поновно коришћење важи само када извор и одредиште још описују исти објекат. Иста путања, исто име, иста датотека. Преименовање извора или показивање на други одредишни директоријум почиње ново поређење са ничим корисним.
Не додајте --whole-file док очекујете делта понашање. Та опција каже rsync-у да копира целу датотеку без поређења клизеће контролне суме, што је разуман избор на брзој локалној вези и тачно погрешан после неуспелог отпремања на даљину. --inplace такође мења причу: уписује директно у одредишну датотеку, па прекид оставља датотеку која меша стари и нови садржај без одвојеног дела на који би се ослонили.
Линија напретка пријављује укупан напредак преноса. То није сигнал завршетка. Број који достигне сто процената док је веза још отворена значи да су подаци гурнути, а не да је прималац нешто преименовао, синхронизовао или прихватио.
Прихватите објекат тек када се поклопи
Прво потврдите излазни статус, затим упоредите резултат уместо да се поуздате у одсуство грешака. Провера величине хвата већину одсечених преноса; поређење контролних сума хвата остатак, и обоје је јефтино у поређењу са поновним покретањем отпремања.
Ако архиву објављује низводни процес, натерајте тај процес да чека прихваћену датотеку. Сачувани део који под коначним именом слети у надгледани директоријум преузима следеће скенирање, а грешка потрошача ће бити о оштећеном улазу, а не о преносу који никада није завршен.
Не дирајте извор док прималац не потврди. Поновно генерисање архиве између покушаја мења основу поређења, а следеће покретање или преноси готово све или прави датотеку која не одговара ни старом ни новом извору.
Када је граница веза, а не заставица
Трошак заглавља и протокола један је трошак преноса и ретко је онај који одлучује колико дуго траје велика датотека. Понашање при поновном покретању је важније: метод који преживи прекид без ручних корака испоручује употребљиву датотеку пре него бржи метод који мора да почне изнова. Складиште на оба краја и путања аутентификације припадају истом поређењу.
Упоредите дозвољене алтернативне путање са истом датотеком и истим одредиштем и забележите одакле свака наставља после прекида. Тај један стубац говори више о отпремању од дванаест гигабајта преко VPN-а него било која вршна брзина измерена у кратком тесту.