Lähetyksesi pysähtyy neljään gigatavuun kahdentoista gigatavun arkistosta, ja lataushallinnilta opittu tapa sanoo, että paina jatka. rsync ei jatka TCP-virtaa, koska se virta katosi tunnelin viimeisen uudelleenlähetyksen mukana. Sen sijaan se voi pitää jo vastaanotetut tavut ja käyttää niitä seuraavan yrityksen perustana, mikä on toinen mekanismi ja toinen sääntökokoelma. Valitsemasi valitsimet päättävät, tapahtuuko tätä uudelleenkäyttöä lainkaan.

Uusi yritys rakentaa tilan uudelleen, se ei jatka virtaa

Kun SSH-istunto katkeaa, etäpäähän jää vain se, minkä se ehti kirjoittaa levylle, eikä mitään muuta. Istuntotunnusta ei ole, johon liittyä uudelleen, eikä järjestysnumeroa, jota toistaa. Seuraava ajo avaa uuden yhteyden, lukee lähteen uudelleen ja kysyy vastaanottajalta, mitä sillä jo on.

Juuri tämä viimeinen kysymys selittää, miksi osittainen tiedosto kannattaa säilyttää. Vastaanottajan kopio antaa rsyncille jotain vertailtavaa, ja algoritmi lähettää vain ne erot, jotka se pystyy tunnistamaan. Se on silti uusi metatietojen siirto ja uusi läpikäynti lähteestä, joten säästetty aika on verrannollinen siihen, kuinka suuri osa tiedostosta täsmää, ei siihen, kuinka pitkälle edellinen yhteys ehti. Jos vastaanottaja ei säilyttänyt mitään, seuraava yritys on täysi kopio riippumatta siitä, kuinka monta gigatavua ensimmäinen siirsi.

Päätä, missä uudelleenkäytettävä osa sijaitsee

Oletuskäyttäytyminen kirjoittaa osittaisen tiedoston kohdepolulle, mikä tekee puoliksi kirjoitetusta arkistosta näkyvän lopullisella nimellä. --partial-dir siirtää sen valitsemaasi hakemistoon, ja käsikirja kuvailee tämän hakemiston säilytettäväksi, jotta myöhempi siirto voi käyttää sitä datana. Suhteellinen nimi ratkaistaan kohdehakemiston alla, mikä on juuri se, mitä haluat, kun kahdella päällä voi olla erilaiset asettelut.

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

Järjestyksellä on merkitystä myös kohteessa: osittaishakemisto tarvitsee tarpeeksi tilaa osalle, ja taltio tarvitsee tarpeeksi tilaa myös valmiille tiedostolle. Kohdetaltion täyttäminen siirron puolivälissä tuottaa epäonnistumisen, joka näyttää verkko-ongelmalta mutta ei ole sitä, ja voi jättää säilytetyn osan katkaistuksi. Tarkista vapaa tila vastaanottavalla koneella ennen ajon alkua, älä sen epäonnistuttua. Muutama sekunti df -h-komennolla samaa SSH-polkua pitkin on halvin mahdollinen suunnitelman testi.

Käyttöoikeudet ovat pienempi mutta todellinen huoli. Osittaishakemisto, johon asiaankuulumattomat tilit voivat kirjoittaa, antaa jonkun muun korvata sisältöä, jota seuraava ajosi pitää jo vastaanotettuna. Pidä se siirtotilin omistuksessa äläkä sijoita sitä sinne, mistä muut palvelut julkaisevat.

Aja sama kopio, älä ovelampi

Uudelleenkäyttö pätee vain, kun lähde ja kohde kuvaavat edelleen samaa objektia. Sama polku, sama nimi, sama tiedosto. Lähteen uudelleennimeäminen tai osoittaminen toiseen kohdehakemistoon aloittaa uuden vertailun jotain hyödytöntä vastaan.

Älä lisää --whole-file-valitsinta, kun odotat delta-käyttäytymistä. Se valitsin käskee rsyncin kopioida koko tiedoston ilman liukuvan tarkistussumman vertailua, mikä on järkevä valinta nopealla paikallisella linkillä ja täsmälleen väärä epäonnistuneen kaukolähetyksen jälkeen. --inplace muuttaa myös tarinaa: se kirjoittaa suoraan kohdetiedostoon, joten keskeytys jättää tiedoston, joka sekoittaa vanhaa ja uutta sisältöä ilman erillistä osaa, johon tukeutua.

Edistymisrivi ilmoittaa siirron kokonaisedistymisen. Se ei ole valmistumisen signaali. Luku, joka saavuttaa sata prosenttia yhteyden ollessa vielä auki, tarkoittaa, että tiedot on työnnetty, ei että vastaanottaja olisi nimennyt, synkronoinut tai hyväksynyt mitään.

Hyväksy objekti vasta kun se täsmää

Vahvista ensin poistumistila ja vertaa sitten tulosta sen sijaan, että luottaisit virheiden puuttumiseen. Kokotarkistus nappaa useimmat katkaistut siirrot; tarkistussumman vertailu nappaa loput, ja molemmat ovat halpoja verrattuna lähetyksen ajamiseen uudelleen.

Jos arkiston julkaisee alavirran prosessi, pakota se prosessi odottamaan hyväksyttyä tiedostoa. Säilytetty osa, joka laskeutuu valvottuun hakemistoon lopullisella nimellä, noukitaan seuraavassa skannauksessa, ja kuluttajan virhe koskee vioittunutta syötettä eikä siirtoa, joka ei koskaan päättynyt.

Jätä lähde rauhaan, kunnes vastaanottaja vahvistaa. Arkiston uudelleenluonti yritysten välillä muuttaa vertailuperustaa, ja seuraava ajo joko siirtää lähes kaiken tai tuottaa tiedoston, joka ei täsmää vanhaan eikä uuteen lähteeseen.

Kun raja on linkki, ei valitsin

Otsikon ja protokollan yleiskulu on yksi siirron kulu, ja harvoin se, joka ratkaisee, kuinka kauan suuri tiedosto kestää. Uudelleenkäynnistyskäyttäytyminen merkitsee enemmän: menetelmä, joka selviää katkoksesta ilman käsin tehtäviä vaiheita, toimittaa käyttökelpoisen tiedoston aiemmin kuin nopeampi menetelmä, jonka on aloitettava alusta. Tallennustila molemmissa päissä ja todennuspolku kuuluvat samaan vertailuun.

Vertaa sallittuja vaihtoehtoisia polkuja samalla tiedostolla ja samalla kohteella ja kirjaa, mistä kukin jatkaa keskeytyksen jälkeen. Se yksi sarake kertoo sinulle kahdentoista gigatavun lähetyksestä VPN:n yli enemmän kuin mikään lyhyessä testissä mitattu huippunopeus.

Aiheeseen liittyvät artikkelit