rsync kupitia VPN: jaribio jipya linalotumia tena usambazaji uliovunjika
Handaki inayoanguka humaliza muunganisho, si data. Hifadhi sehemu kwa --partial-dir, endesha nakala hiyo hiyo tena na uthibitishe faili kabla ya kuichapisha.
Upakiaji wako unakwama kwenye gigabaiti nne za kumbukumbu ya gigabaiti kumi na mbili, na tabia iliyojifunza kutoka kwa wasimamizi wa upakuaji inasema bonyeza endelea. rsync haitaendelea na mtiririko wa TCP, kwa sababu mtiririko huo ulikwenda na usambazaji upya wa mwisho wa handaki. Inachoweza kufanya ni kuhifadhi baiti zilizopokelewa tayari na kuzitumia kama msingi wa jaribio lifuatalo, ambayo ni mbinu nyingine yenye seti nyingine ya kanuni. Bendera unazochagua huamua kama matumizi hayo tena yatatokea kabisa.
Jaribio jipya hujenga hali upya, haliendelei mtiririko
Kipindi cha SSH kinapoanguka, upande wa mbali hubaki tu kile kilichofanikiwa kuandikwa kwenye diski, na hakuna kingine. Hakuna tokeni ya kipindi ya kujiunga nayo tena na hakuna namba ya mfuatano ya kucheza tena. Uendeshaji unaofuata hufungua muunganisho mpya, husoma chanzo tena na kumuuliza mpokeaji anacho tayari.
Swali hilo la mwisho ndilo linaloeleza kwa nini faili ya sehemu inafaa kuhifadhiwa. Nakala ya mpokeaji inampa rsync kitu cha kulinganisha nacho, na algoriti hutuma tu tofauti inazoweza kutambua. Bado ni usambazaji mpya wa metadata na mzunguko mpya juu ya chanzo, kwa hiyo muda uliookolewa unalingana na kiasi cha faili kinacholingana, si umbali ambao muunganisho uliopita ulifika. Ikiwa mpokeaji hakuhifadhi chochote, jaribio lifuatalo ni nakala kamili, bila kujali gigabaiti ngapi za kwanza zilihamishwa.
Amua sehemu inayoweza kutumika tena inapoishi
Tabia ya chaguo-msingi huandika faili ya sehemu kwenye njia ya lengo, jambo linalofanya kumbukumbu iliyoandikwa nusu ionekane chini ya jina la mwisho. --partial-dir huihamishia kwenye saraka unayochagua, na mwongozo unaeleza saraka hiyo kama iliyohifadhiwa kwa matumizi kama data na usambazaji wa baadaye. Jina la jamaa hutatuliwa chini ya saraka ya lengo, jambo ambalo ndilo unalotaka wakati pande mbili zinaweza kuwa na mipangilio tofauti.
rsync -e ssh --partial-dir=.rsync-partial --info=progress2 -- \
large-archive.bin [email protected]:/srv/incoming/
Mpangilio ni muhimu pia kwenye lengo: saraka ya sehemu inahitaji nafasi ya kutosha kwa sehemu, na ujazo unahitaji nafasi ya kutosha kwa faili iliyokamilika pia. Kujaza ujazo wa lengo katikati ya usambazaji huzalisha kushindwa kunakoonekana kama tatizo la mtandao lakini siyo, na kunaweza kuacha sehemu iliyohifadhiwa ikiwa imekatwa. Angalia nafasi iliyobaki kwenye mwenyeji anayepokea kabla ya uendeshaji kuanza, si baada ya kushindwa. Sekunde chache na df -h kwenye njia hiyo hiyo ya SSH ni jaribio la bei nafuu zaidi linalowezekana la mpango.
Ruhusa ni wasiwasi mdogo lakini wa kweli. Saraka ya sehemu ambayo akaunti zisizohusiana zinaweza kuandika ndani yake inamruhusu mtu mwingine kubadilisha maudhui ambayo uendeshaji wako unaofuata utayachukulia kama yaliyopokelewa tayari. Iweke chini ya umiliki wa akaunti ya usambazaji, na usiiweke mahali ambapo huduma nyingine huchapisha.
Endesha nakala hiyo hiyo, si ile yenye werevu zaidi
Matumizi tena yanatumika tu wakati chanzo na lengo bado vinaeleza kitu kimoja. Njia hiyo hiyo, jina hilo hilo, faili hiyo hiyo. Kubadilisha jina la chanzo au kuelekeza kwenye saraka nyingine ya lengo huanzisha ulinganisho mpya dhidi ya hakuna kitu cha manufaa.
Usiongeze --whole-file ukiwa unatarajia tabia ya delta. Chaguo hilo linaiambia rsync kunakili faili yote bila ulinganisho wa checksum inayozunguka, ambayo ni chaguo la busara kwenye kiungo cha ndani cha haraka na kosa kamili baada ya upakiaji wa mbali ulioshindwa. --inplace pia hubadilisha hadithi: huandika moja kwa moja kwenye faili ya lengo, kwa hiyo kukatizwa kunaacha faili inayochanganya maudhui ya zamani na mapya bila sehemu tofauti ya kurudi nyuma.
Mstari wa maendeleo huripoti maendeleo ya jumla ya usambazaji. Si ishara ya kukamilika. Namba inayofikia asilimia mia moja wakati muunganisho bado uko wazi ina maana data imesukumwa, si kwamba mpokeaji amebadilisha jina, amesawazisha au amekubali kitu.
Kubali kitu baada ya kulingana tu
Thibitisha hali ya kutoka kwanza, kisha linganisha matokeo badala ya kutegemea kutokuwepo kwa makosa. Ukaguzi wa ukubwa hunasa usambazaji mwingi uliokatwa; ulinganisho wa checksum hunasa uliobaki, na zote mbili ni za bei nafuu ikilinganishwa na kuendesha upakiaji tena.
Ikiwa kumbukumbu inachapishwa na mchakato wa chini, fanya mchakato huo usubiri faili iliyokubaliwa. Sehemu iliyohifadhiwa inayotua kwenye saraka inayofuatiliwa chini ya jina la mwisho huchukuliwa na uchanganuzi unaofuata, na kosa la mtumiaji litakuwa kuhusu ingizo lililoharibika na si kuhusu usambazaji ambao haukukamilika kamwe.
Acha chanzo kwa utulivu hadi mpokeaji athibitishe. Kuzalisha kumbukumbu upya kati ya majaribio hubadilisha msingi wa ulinganisho, na uendeshaji unaofuata ama huhamisha karibu kila kitu au huzalisha faili isiyolingana na chanzo cha zamani wala kipya.
Wakati kikomo ni kiungo, si bendera
Gharama ya kichwa na itifaki ni gharama moja ya usambazaji, na mara chache ndiyo huamua faili kubwa inachukua muda gani. Tabia ya kuanza upya ina maana zaidi: mbinu inayostahimili kukatika bila hatua za mkono huwasilisha faili inayoweza kutumika mapema kuliko mbinu ya haraka zaidi inayolazimika kuanza upya. Hifadhi kwenye pande zote mbili na njia ya uthibitishaji ni sehemu ya ulinganisho huo huo.
Linganisha njia mbadala zilizoruhusiwa na faili hiyo hiyo na lengo hilo hilo, na andika ni wapi kila moja inaanza upya baada ya kukatizwa. Safu hiyo moja inakuambia zaidi kuhusu upakiaji wa gigabaiti kumi na mbili kupitia VPN kuliko kasi yoyote ya juu iliyopimwa katika jaribio fupi.