rsync përmes VPN: një përpjekje e re që ripërdor transferimin e ndërprerë
Një tunel që bie e përfundon lidhjen, jo të dhënat. Ruani fragmentin me --partial-dir, ekzekutoni përsëri të njëjtën kopje dhe verifikoni skedarin përpara se ta publikoni.
Ngarkimi juaj ndalon në katër gigabajt të një arkivi prej dymbëdhjetë gigabajtësh, dhe zakoni i mësuar nga menaxherët e shkarkimit thotë të shtypësh vazhdo. rsync nuk do ta vazhdojë rrjedhën TCP, sepse ajo rrjedhë u zhduk me ritransmetimin e fundit të tunelit. Ajo që mund të bëjë është të mbajë bajtët e marrë tashmë dhe t'i përdorë si bazë për përpjekjen tjetër, që është një mekanizëm tjetër me një grup tjetër rregullash. Flamujt që zgjidhni përcaktojnë nëse ky ripërdorim ndodh fare.
Përpjekja e re rindërton gjendjen, nuk e vazhdon rrjedhën
Kur sesioni SSH bie, në skajin e largët mbetet vetëm ajo që arriti të shkruhet në disk, dhe asgjë tjetër. Nuk ka token sesioni për t'u rilidhur dhe as numër rendor për t'u riprodhuar. Ekzekutimi tjetër hap një lidhje të re, e lexon përsëri burimin dhe e pyet marrësin se çfarë ka tashmë.
Pikërisht pyetja e fundit shpjegon pse ia vlen të ruhet një skedar i pjesshëm. Kopja e marrësit i jep rsync-it diçka me të cilën të krahasohet, dhe algoritmi dërgon vetëm dallimet që arrin t'i identifikojë. Është ende një transferim i ri metadatash dhe një kalim i ri mbi burimin, prandaj koha e kursyer është në përpjesëtim me atë se sa e skedarit përputhet, jo me atë se sa larg kishte shkuar lidhja e mëparshme. Nëse marrësi nuk ka mbajtur asgjë, përpjekja tjetër është një kopje e plotë, sado gigabajt të ketë lëvizur e para.
Vendosni ku jeton fragmenti i ripërdorshëm
Sjellja e paracaktuar e shkruan skedarin e pjesshëm në shtegun e destinacionit, gjë që e bën të dukshëm një arkiv gjysmë të shkruar nën emrin përfundimtar. --partial-dir e zhvendos atë në një drejtori sipas zgjedhjes suaj, dhe manuali e përshkruan atë drejtori si të ruajtur për t'u përdorur si të dhëna nga një transferim i mëvonshëm. Një emër relativ zgjidhet brenda drejtorisë së destinacionit, që është pikërisht ajo që dëshironi kur dy skajet mund të kenë planime të ndryshme.
rsync -e ssh --partial-dir=.rsync-partial --info=progress2 -- \
large-archive.bin [email protected]:/srv/incoming/
Rendi ka rëndësi edhe në destinacion: drejtoria e pjesshme ka nevojë për hapësirë të mjaftueshme për fragmentin, dhe vëllimi ka nevojë për hapësirë të mjaftueshme edhe për skedarin e përfunduar. Mbushja e vëllimit të synuar në mes të transferimit prodhon një dështim që duket si problem rrjeti por nuk është, dhe mund ta lërë fragmentin e ruajtur të prerë. Kontrolloni hapësirën e lirë në hostin marrës përpara se të fillojë ekzekutimi, jo pasi dështon. Disa sekonda me df -h në të njëjtin shteg SSH është testi më i lirë i mundshëm i planit.
Lejet janë një shqetësim më i vogël por i vërtetë. Një drejtori e pjesshme ku mund të shkruajnë llogari të palidhura i lejon dikujt tjetër të zëvendësojë përmbajtje që ekzekutimi juaj tjetër do ta trajtojë si të marrë tashmë. Mbajeni në pronësi të llogarisë së transferimit dhe mos e vendosni atje ku publikojnë shërbime të tjera.
Ekzekutoni të njëjtën kopje, jo një më të zgjuar
Ripërdorimi zbatohet vetëm kur burimi dhe destinacioni përshkruajnë ende të njëjtin objekt. I njëjti shteg, i njëjti emër, i njëjti skedar. Riemërtimi i burimit ose tregimi drejt një drejtorie tjetër destinacioni fillon një krahasim të ri kundrejt asgjëje të dobishme.
Mos shtoni --whole-file ndërsa prisni sjelljen delta. Ai opsion i thotë rsync-it të kopjojë të gjithë skedarin pa krahasimin e shumës kontrolluese rrotulluese, që është një zgjedhje e arsyeshme në një lidhje të shpejtë lokale dhe pikërisht e gabuara pas një ngarkimi të dështuar në distancë të gjatë. --inplace ndryshon gjithashtu historinë: shkruan drejtpërdrejt në skedarin e destinacionit, kështu që një ndërprerje lë një skedar që përzie përmbajtje të vjetër dhe të re pa një fragment të veçantë ku të tërhiqesh.
Rreshti i progresit raporton progresin e përgjithshëm të transferimit. Nuk është sinjal përfundimi. Një numër që arrin njëqind për qind ndërsa lidhja është ende e hapur do të thotë që të dhënat u shtynë, jo që marrësi ka riemërtuar, sinkronizuar ose pranuar diçka.
Pranoje objektin vetëm pasi të përputhet
Konfirmoni fillimisht statusin e daljes, pastaj krahasoni rezultatin në vend që të mbështeteni në mungesën e gabimeve. Një kontroll madhësie kap shumicën e transferimeve të prera; një krahasim i shumave kontrolluese kap pjesën tjetër, dhe të dyja janë të lira krahasuar me riekzekutimin e ngarkimit.
Nëse arkivin e publikon një proces i rrjedhës së poshtme, bëjeni atë proces të presë skedarin e pranuar. Një fragment i ruajtur që zbret në një drejtori të mbikqyrur nën emrin përfundimtar kapet nga skanimi tjetër, dhe gabimi i konsumatorit do të jetë për input të dëmtuar dhe jo për një transferim që nuk mbaroi kurrë.
Lëreni burimin të qetë derisa marrësi të konfirmojë. Rigjenerimi i arkivit midis përpjekjeve ndryshon bazën e krahasimit, dhe ekzekutimi tjetër ose transferon pothuajse gjithçka ose prodhon një skedar që nuk përputhet as me burimin e vjetër as me atë të ri.
Kur kufiri është lidhja, jo flamuri
Mbivendosja e kokës dhe e protokollit është një kosto e transferimit, dhe rrallë është ajo që vendos sa zgjat një skedar i madh. Sjellja e rinisjes ka më shumë rëndësi: një metodë që i mbijeton një ndërprerjeje pa hapa manualë jep një skedar të përdorshëm më herët sesa një metodë më e shpejtë që duhet të fillojë nga e para. Ruajtja në të dy skajet dhe shtegu i vërtetimit i përkasin të njëjtit krahasim.
Krahasoni shtigjet alternative të lejuara me të njëjtin skedar dhe të njëjtin destinacion, dhe shënoni nga seciili rifillon pas një ndërprerjeje. Ai kolonë i vetëm ju thotë më shumë për një ngarkim prej dymbëdhjetë gigabajtësh përmes një VPN sesa çdo shpejtësi maksimale e matur në një test të shkurtër.