Sinu üleslaadimine takerdub nelja gigabaidi juures kaheteistkümnegigabaidisest arhiivist ja allalaadimishalduritelt õpitud harjumus ütleb, et vajuta jätkamist. rsync ei jätka TCP voogu, sest see voog kadus koos tunneli viimase kordussaatmisega. Mida see teha suudab, on hoida juba vastuvõetud baidid alles ja kasutada neid järgmise katse alusena, mis on teine mehhanism teise reeglistikuga. Valitud lipud otsustavad, kas see korduskasutus üldse toimub.

Korduskatse taastab oleku, see ei jätka voogu

Kui SSH sessioon katkeb, jääb kaugotsa alles ainult see, mille see jõudis kettale kirjutada, ja mitte midagi muud. Pole sessiooni tokenit, millega uuesti liituda, ega järjekorranumbrit, mida korrata. Järgmine käivitus avab uue ühenduse, loeb allika uuesti läbi ja küsib vastuvõtjalt, mis tal juba olemas on.

Just see viimane küsimus selgitab, miks osaline fail tasub alles hoida. Vastuvõtja koopia annab rsyncile millegagi võrrelda ja algoritm saadab ainult need erinevused, mida suudab tuvastada. See on ikka uus metaandmete ülekanne ja uus läbiminek allikast, nii et säästetud aeg on võrdeline sellega, kui suur osa failist kattub, mitte sellega, kui kaugele eelmine ühendus jõudis. Kui vastuvõtja ei hoidnud midagi alles, on järgmine katse täielik koopia, ükskõik kui mitu gigabaiti esimene liigutas.

Otsusta, kus korduskasutatav fragment paikneb

Vaikekäitumine kirjutab osalise faili sihtkoha teele, mis teeb pooleldi kirjutatud arhiivi lõpliku nime all nähtavaks. --partial-dir viib selle sinu valitud kataloogi ja käsiraamat kirjeldab seda kataloogi kui hilisema ülekande poolt andmetena kasutamiseks alles hoitut. Suhteline nimi lahendatakse sihtkoha kataloogi all, mis on täpselt see, mida soovid, kui kahel otsal võivad olla erinevad paigutused.

rsync -e ssh --partial-dir=.rsync-partial --info=progress2 -- \
  large-archive.bin [email protected]:/srv/incoming/

Järjekord loeb ka sihtkohas: osalisel kataloogil peab olema piisavalt ruumi fragmendi jaoks ja kettal peab olema piisavalt ruumi ka valminud faili jaoks. Sihtkoha ketta täitmine ülekande keskel tekitab tõrke, mis näeb välja nagu võrguprobleem, aga ei ole seda, ja võib jätta alles hoitud fragmendi kärbitud kujule. Kontrolli vaba ruumi vastuvõtvas hostis enne käivitust, mitte pärast ebaõnnestumist. Paar sekundit df -h-ga sama SSH tee kaudu on plaani võimalikult odav test.

Õigused on väiksem, aga tegelik mure. Osaline kataloog, kuhu saavad kirjutada kõrvalised kontod, lubab kellelgi teisel asendada sisu, mida sinu järgmine käivitus käsitleb juba vastuvõetuna. Hoia see ülekandekonto omandis ja ära pane seda kohta, kust teised teenused avaldavad.

Käivita sama koopia, mitte kavalam

Korduskasutus kehtib ainult siis, kui allikas ja sihtkoht kirjeldavad endiselt sama objekti. Sama tee, sama nimi, sama fail. Allika ümbernimetamine või teisele sihtkataloogile osutamine algab uue võrdlusega millegi kasuliku vastu, mida ei ole.

Ära lisa --whole-file, kui ootad deltakäitumist. See valik ütleb rsyncile kopeerida kogu fail ilma veereva kontrollsumma võrdluseta, mis on mõistlik valik kiirel kohalikul lingil ja täpselt vale pärast ebaõnnestunud pikamaa-üleslaadimist. --inplace muudab samuti lugu: see kirjutab otse sihtfaili, nii et katkestus jätab faili, mis segab vana ja uue sisu, ilma eraldi fragmendita, millele toetuda.

Edenemisrida näitab ülekande koguedenemist. See ei ole lõpetamise signaal. Number, mis jõuab saja protsendini, kui ühendus on veel avatud, tähendab, et andmed on lükatud, mitte et vastuvõtja on midagi ümber nimetanud, sünkrooninud või vastu võtnud.

Võta objekt vastu alles siis, kui see klapib

Kinnita esmalt väljumisstaatus, seejärel võrdle tulemust, selle asemel et usaldada vigade puudumist. Suuruse kontroll püüab kinni enamiku kärbitud ülekannetest; kontrollsumma võrdlus püüab ülejäänud, ja mõlemad on odavad võrreldes üleslaadimise uuesti käivitamisega.

Kui arhiivi avaldab allavoolu protsess, pane see protsess vastuvõetud faili ootama. Alles hoitud fragment, mis maandub jälgitud kataloogis lõpliku nime all, korjatakse järgmise skaneerimise poolt üles, ja tarbija viga puudutab rikutud sisendit, mitte ülekannet, mis kunagi ei lõppenud.

Jäta allikas puutumata, kuni vastuvõtja kinnitab. Arhiivi regenereerimine katsete vahel muudab võrdlusalust ja järgmine käivitus kas kannab üle peaaegu kõik või loob faili, mis ei klapi ei vana ega uue allikaga.

Kui piiriks on link, mitte lipp

Päise ja protokolli üldkulu on üks ülekande kuludest ja harva on see see, mis otsustab, kui kaua suur fail aega võtab. Taaskäivituse käitumine loeb rohkem: meetod, mis elab katkestuse üle ilma käsitsi sammudeta, annab kasutatava faili varem kui kiirem meetod, mis peab uuesti alustama. Salvestusruum mõlemas otsas ja autentimistee kuuluvad samasse võrdlusesse.

Võrdle lubatud alternatiivseid teid sama faili ja sama sihtkohaga ning märgi, kust kumbki pärast katkestust jätkab. See üks veerg räägib sulle VPN-i kaudu tehtavast kaheteistkümnegigabaidisest üleslaadimisest rohkem kui ükskõik milline lühikeses testis mõõdetud tippkiirus.

Seotud artiklid