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 отколку која било врвна брзина измерена во краток тест.