rsync VPN: atkārtots mēģinājums, kas atkalizmanto pārtraukto pārraidi
Pārtrūcis tunelis beidz savienojumu, nevis datus. Saglabājiet fragmentu ar --partial-dir, palaidiet to pašu kopiju vēlreiz un pārbaudiet failu pirms publicēšanas.
Jūsu augšupielāde apstājas pie četriem gigabaitiem no divpadsmit gigabaitu arhīva, un no lejupielādes pārvaldniekiem iemācītā ieradums saka spiest turpināt. rsync neatsāks TCP plūsmu, jo šī plūsma pazuda kopā ar tuneļa pēdējo atkārtoto pārraidi. Ko tas var darīt, ir saglabāt jau saņemtos baitus un izmantot tos kā pamatu nākamajam mēģinājumam, kas ir cits mehānisms ar citu noteikumu kopumu. Izvēlētie karodziņi nosaka, vai šī atkārtotā izmantošana vispār notiks.
Atkārtotais mēģinājums atjauno stāvokli, tas neatsāk plūsmu
Kad SSH sesija pārtrūkst, attālajā galā paliek tikai tas, ko izdevās ierakstīt diskā, un nekas cits. Nav sesijas pilnvaras, kam atkal pievienoties, un nav secības numura, ko atkārtoti atskaņot. Nākamā palaišana atver jaunu savienojumu, vēlreiz nolasa avotu un pajautā saņēmējam, kas tam jau ir.
Tieši šis pēdējais jautājums izskaidro, kāpēc daļēju failu ir vērts saglabāt. Saņēmēja kopija dod rsync kaut ko salīdzināt, un algoritms nosūta tikai tās atšķirības, ko spēj noteikt. Tas joprojām ir jauna metadatu pārsūtīšana un jauna avota caurskatīšana, tāpēc ietaupītais laiks ir proporcionāls tam, cik liela daļa faila sakrīt, nevis tam, cik tālu bija pavirzījies iepriekšējais savienojums. Ja saņēmējs neko nav saglabājis, nākamais mēģinājums ir pilna kopija, lai cik gigabaitu pārvietoja pirmais.
Izlemiet, kur dzīvo atkārtoti izmantojamais fragments
Noklusējuma darbība ieraksta daļējo failu mērķa ceļā, kas padara pusrakstītu arhīvu redzamu ar galīgo nosaukumu. --partial-dir pārvieto to uz jūsu izvēlētu direktoriju, un rokasgrāmata šo direktoriju apraksta kā saglabātu, lai vēlāka pārsūtīšana to izmantotu kā datus. Relatīvs nosaukums tiek atrisināts mērķa direktorijā, un tas ir tieši tas, ko vēlaties, ja abiem galiem var būt atšķirīgs izkārtojums.
rsync -e ssh --partial-dir=.rsync-partial --info=progress2 -- \
large-archive.bin [email protected]:/srv/incoming/
Kārtība ir svarīga arī mērķī: daļējai direktorijai vajag pietiekami daudz vietas fragmentam, un sējumam vajag pietiekami daudz vietas arī pabeigtajam failam. Mērķa sējuma piepildīšana pārsūtīšanas vidū rada kļūmi, kas izskatās pēc tīkla problēmas, bet tāda nav, un tā var atstāt saglabāto fragmentu aprautu. Pārbaudiet brīvo vietu uzņēmējā saimniekā pirms palaišanas sākuma, nevis pēc tam, kad tā neizdevās. Dažas sekundes ar df -h pa to pašu SSH ceļu ir lētākais iespējamais plāna tests.
Atļaujas ir mazākas, bet reālas rūpes. Daļēja direktorija, kurā var rakstīt nesaistīti konti, ļauj kādam citam aizstāt saturu, ko jūsu nākamā palaišana uzskatīs par jau saņemtu. Turiet to pārsūtīšanas konta īpašumā un nelieciet tur, no kurienes publicē citi pakalpojumi.
Palaidiet to pašu kopiju, nevis gudrāku
Atkārtotā izmantošana attiecas tikai tad, ja avots un mērķis joprojām apraksta to pašu objektu. Tas pats ceļš, tas pats nosaukums, tas pats fails. Avota pārdēvēšana vai norāde uz citu mērķa direktoriju sāk jaunu salīdzinājumu pret neko noderīgu.
Nepievienojiet --whole-file, gaidot delta uzvedību. Šī opcija liek rsync kopēt visu failu bez ripojošās kontrolsummas salīdzināšanas, kas ir saprātīga izvēle ātrā vietējā savienojumā un tieši nepareiza pēc neizdevušās tāldarbības augšupielādes. --inplace arī maina stāstu: tas raksta tieši mērķa failā, tāpēc pārtraukums atstāj failu, kas sajauc veco un jauno saturu, bez atsevišķa fragmenta, kur atkāpties.
Progresa rinda ziņo par pārsūtīšanas kopējo progresu. Tas nav pabeigšanas signāls. Skaitlis, kas sasniedz simts procentus, kamēr savienojums vēl ir atvērts, nozīmē, ka dati ir iespiesti, nevis to, ka saņēmējs kaut ko pārdēvēja, sinhronizēja vai pieņēma.
Pieņemiet objektu tikai pēc tam, kad tas sakrīt
Vispirms apstipriniet iziešanas statusu, pēc tam salīdziniet rezultātu, nevis paļaujieties uz kļūdu neesamību. Izmēra pārbaude pārtver lielāko daļu aprauto pārsūtīšanu; kontrolsummu salīdzinājums pārtver pārējās, un abi ir lēti, salīdzinot ar augšupielādes atkārtotu palaišanu.
Ja arhīvu publicē lejupstraumes process, lieciet šim procesam gaidīt pieņemto failu. Saglabātais fragments, kas ar galīgo nosaukumu nokļūst uzraudzītā direktorijā, tiek paņemts nākamajā skenēšanā, un patērētāja kļūda būs par bojātu ievadi, nevis par pārsūtīšanu, kas nekad nebeidzās.
Neaiztieciet avotu, kamēr saņēmējs neapstiprina. Arhīva atjaunošana starp mēģinājumiem maina salīdzināšanas pamatu, un nākamā palaišana vai nu pārsūta gandrīz visu, vai rada failu, kas neatbilst ne vecajam, ne jaunajam avotam.
Kad ierobežojums ir saite, nevis karodziņš
Galvenes un protokola papildu izmaksas ir vienas pārsūtīšanas izmaksas, un reti tieši tās nosaka, cik ilgi aizņem liels fails. Restartēšanas uzvedība ir svarīgāka: metode, kas pārdzīvo pārtraukumu bez manuāliem soļiem, piegādā lietojamu failu agrāk nekā ātrāka metode, kas jāsāk no jauna. Krātuve abos galos un autentifikācijas ceļš pieder pie tā paša salīdzinājuma.
Salīdziniet atļautos alternatīvos ceļus ar to pašu failu un to pašu mērķi, un atzīmējiet, no kurienes katrs atsāk pēc pārtraukuma. Šī vienīgā kolonna jums pastāsta vairāk par divpadsmit gigabaitu augšupielādi VPN nekā jebkurš īsā testā mērītais maksimālais ātrums.