Jo oplaad stôket by fjouwer gigabyte fan in argyf fan tolve gigabyte, en de gewoante fan downloadbehearders seit om op ferfetsje te drukken. rsync sil de TCP-stream net ferfetsje, want dy stream is fuort mei de lêste weroerdracht fan 'e tunnel. Wat it wol kin, is de bytes dy't it al ûntfongen hat hâlde en dy as basis foar de folgjende poging brûke, dat is in oar meganisme mei in oare set regels. De flags dy't jo kieze bepale oft dy werbrûk überhaupt plakfynt.

De werpoging bout steat op, it ferfettet de stream net

As de SSH-sesje falt, bliuwt oan 'e oare kant allinnich wat it nei skiif flusht hat, en neat oars. Der is gjin sesjetoken om wer oan te heakjen en gjin folchnûmer om wer te spyljen. De folgjende run iepenet in nije ferbining, lêst de boarne wer en freget de ûntfanger wat hy al hat.

Dat lêste fraach is wêrom't in partiel bestân it wurdich is om te hâlden. De kopy fan 'e ûntfanger jout rsync wat om mei te fergelykjen, en it algoritme stjoert allinnich de ferskillen dy't it identifisearje kin. It is noch altyd in nije oerdracht fan metadata en in nije gong oer de boarne, dus de bewarre tiid is evenredich mei hoefolle fan it bestân oerienkomt, net mei hoe fier de foarige ferbining kaam wie. As de ûntfanger neat bewarre hat, is de folgjende poging in folsleine kopy, hoefolle gigabyte de earste ek ferpleatst hat.

Beslis wêr't it werbrûkbere fragmint wennet

It standertgedrach skriuwt it partiele bestân op it bestimmingspaad, wat in heal skreaun argyf ûnder de definitive namme sichtber makket. --partial-dir ferpleatst it nei in map nei jo kar, en de hânlieding beskriuwt dy map as bewarre om troch in lettere oerdracht as data brûkt te wurden. In relative namme wurdt ûnder de bestimmingsmap oplost, wat is wat jo wolle as de beide einen ferskillende yndielings hawwe kinne.

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

De folchoarder is ek by de bestimming fan belang: de partiele map hat genôch romte nedich foar it fragmint, en it folume hat ek genôch nedich foar it foltôge bestân. It folume folje midden yn 'e oerdracht jout in flater dy't op in netwurkprobleem liket mar it net is, en it kin it bewarre fragmint ôfkoarte efterlitte. Kontrolearje frije romte op 'e ûntfangende host foar't de run begjint, net neidat it mislearre is. In pear sekonden mei df -h oer itselde SSH-paad is de goedkeapste mooglike test fan it plan.

Permisjes binne in lytsere mar echte soarch. In partiele map dêr't net besibbe akkounts yn skriuwe kinne, lit immen oars ynhâld ferfange dy't jo folgjende run as al ûntfongen behannelje sil. Hâld it yn eigendom fan it oerdrachtsakkount, en set it net dêr't oare tsjinsten út publisearje.

Run deselde kopy, net in slimmere

It werbrûk jildt allinnich as de boarne en de bestimming noch itselde objekt beskriuwe. Itselde paad, deselde namme, itselde bestân. It omneamen fan 'e boarne of wizen nei in oare bestimmingsmap begjint in nije fergeliking tsjin neat nuttichs.

Foegje --whole-file net ta wylst jo it deltagedrach ferwachtsje. Dy opsje seit tsjin rsync om it hiele bestân te kopiearjen sûnder de fergeliking fan rôljende kontrôlesom, wat in ridlike kar is op in flugge lokale keppeling en krekt de ferkearde nei in mislearre langôfstân-oplading. --inplace feroaret ek it ferhaal: it skriuwt direkt yn it bestimmingsbestân, dus in ûnderbrekking lit in bestân efter dat âld en nij ynhâld mingt sûnder in apart fragmint om op werom te fallen.

De foarútgongsrigel rapportearret de totale foarútgong fan 'e oerdracht. It is gjin foltôgingssinjaal. In nûmer dat hûndert persint berikt wylst de ferbining noch iepen is, betsjut dat de gegevens skood binne, net dat de ûntfanger wat omneamd, syngronisearre of akseptearre hat.

Akseptearje it objekt pas neidat it oerienkomt

Befêstigje earst de útgongsstatus, fergelykje dan it resultaat ynstee fan te fertrouwen op it ûntbrekken fan flaters. In gruttekontrôle fangt de measte ôfkoarte oerdrachten; in kontrôlesomfergeliking fangt de rest, en beide binne goedkeap yn fergeliking mei it opladen wer opnij te rinnen.

As it argyf troch in stroomôfwertsproses publisearre wurdt, lit dat proses dan op it akseptearre bestân wachtsje. In bewarre fragmint dat ûnder de definitive namme yn in besjoen map belânet, wurdt troch de folgjende scan oppakt, en de flater fan 'e konsumint sil oer beskeadige ynfier gean ynstee fan oer in oerdracht dy't nea klear kaam.

Lit de boarne gewurde oant de ûntfanger befêstiget. It argyf tusken pogingen opnij generearje feroaret de fergelikingsbasis, en de folgjende run draacht of hast alles oer of makket in bestân dat noch by de âlde noch by de nije boarne past.

As de keppeling, net de flag, de grins is

Header- en protokol-omballing is ien kosten fan in oerdracht, en it is selden dejinge dy't beslút hoelang in grut bestân duorret. Werstartgedrach is wichtiger: in metoade dy't in fal oerlibbet sûnder hânmjittige stappen, leveret earder in brûkber bestân as in fluggere metoade dy't wer begjinne moat. Opslach oan beide kanten en it autentikaasjepaad hearre by deselde fergeliking.

Fergelykje tastiene alternative paden mei itselde bestân en deselde bestimming, en notearje wêr't elk nei in ûnderbrekking wer begjint. Dy iene kolom fertelt jo mear oer in oplading fan tolve gigabyte oer in VPN as hokker pykfaasje dan ek mjitten yn in koarte test.

Relatearre artikelen