Dva strežnika, en VPN, en imenik, ki mora obstajati na obeh mestih, in ukaz, ki ga je lahko zagnati in težko razveljaviti. Preden ga vtipkate, odločite, katera kopija je avtoritativna, ker je vsako nadaljnje vprašanje o rsync odvisno od tega odgovora. Enosmerna replika, skupna delovna mapa in arhiv z različicami potrebujejo različna pravila za spremembe in brisanja. Predor zagotavlja pot in nima mnenja o nobenem od njih.

Odločite, katera kopija zmaga, preden vtipkate ukaz

Zapišite smer v enem stavku, vključno z imenom gostitelja in potjo na vsaki strani, in pridobite soglasje tistega, ki je lastnik podatkov. V tem postopku je vir /srv/publish/, cilj pa je račun na fileserver.example, ki lahko piše samo v /srv/mirror/.

Pred kopiranjem potrdite dejstva o prenosu: ključ gostitelja SSH je preverjen, ciljni račun lahko piše v območje replike in nikamor drugam, oba gostitelja pa imata združljivi različici rsync. Ti predpogoji preprečijo, da bi majhna napaka pri načrtovanju postala incident z dovoljenji. Povedo vam tudi, kateri račun se bo pojavil v dnevnikih cilja, ko gre kaj narobe.

Predoglejte si kopijo in preberite podroben seznam

Kopijo najprej zaženite s stikalom za predogled in shranite izhod. Podrobne spremembe vam povedo, kaj bi se zgodilo z vsako potjo, kar je veliko bolj uporabno kot poznejši povzetek dokončanja. Shranite izhod v zapis sprememb, da bo imel naslednji zagon s čim primerjati.

rsync -rt --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/

Končna poševnica je pomembna. Na strani vira pomeni vsebino tega imenika, medtem ko njena izpustitev doda dodatno raven imenika, poimenovano po viru. Priročnik rsync opisuje obe obliki skupaj s stikali za ohranjanje metapodatkov, nabor možnosti, ki jih potrebujete, pa je odvisen od podatkov in ne od navade.

Vsako vrstico berite glede na predvideni cilj. Odstranitev stikala za predogled izvede kopijo in lahko prepiše datoteke, brez možnosti brisanja pa odvečne datoteke, ki so že na cilju, preprosto ostanejo tam, kjer so. To je varna privzeta nastavitev le, če ste se res odločili, da so zastarele datoteke, ki ostanejo zadaj, sprejemljive. Če je odgovor ne, je treba sprejeti odločitev o brisanju spodaj, ne pa v ta ukaz potresti dodatno stikalo.

Nato odločite, ali se brisanja prenašajo

Narediti cilj zrcalo je druga odločitev, ne izpopolnitev prve. Predoglejte si jo posebej, z dodanim stikalom za brisanje in ničemer drugim spremenjenim, da razlika na seznamu v celoti pripada tej odločitvi.

rsync -rt --delete --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/

Brisanja odstranijo odvečne datoteke na prejemni strani znotraj sinhroniziranega obsega, zato lahko napačna pot vira, nemontiran imenik ali filter, ki izključuje več, kot je bilo mišljeno, povzročijo, da je uničujoč zagon videti kot čisto zrcalo. Seznam predogleda je edino mesto, kjer ta razlika postane vidna, preden postane draga. Kjer podatki to upravičujejo, hranite neodvisno kopijo za obnovitev, in ne pozabite, da zrcalo zvesto reproducira nenamerno brisanje namesto da bi ohranilo zgodovino.

Predogled tudi ničesar ne zaklene. Ljudje urejajo datoteke med poskusnim in resničnim zagonom, datotečni sistemi pa imajo svoje mnenje, zato zagon, ki ga odobrite, in zagon, ki se izvede, nista ista operacija, razen če sta obe drevesi mirni.

Dve enosmerni opravili ne naredita dvosmerne sinhronizacije

Izvajanje istega ukaza v obe smeri je v tem scenariju najpogostejši način izgube podatkov. Vsaka smer obravnava drugo stran kot cilj in veselo prepiše novejšo vsebino, brisanja pa se zrcalijo v vrstnem redu, v katerem se sproži urnik.

Če morajo uporabniki urejati obe kopiji, je to druga produktna odločitev: obravnava konfliktov, sledenje brisanjem in orodje, zasnovano za ta model. Približevanje s pomočjo vrstnega reda urnika je način, kako skupna mapa dobi dve različici vsakega dokumenta, ki ju nihče ne more uskladiti. Odločite se o tem izrecno, namesto da bi to približevali z dvema vnosoma cron in upanjem.

Avtomatizirajte šele, ko je politika zapisana

Načrtovano opravilo mora nositi smer, poti, politiko metapodatkov in odobreno odločitev o brisanju. Teh pet dejstev shranite v samo datoteko opravila, ne na wikistran, ki je naslednji skrbnik morda nikoli ne bo prebral. Preprečite prekrivajoče se zagone, ker dve kopiji, ki hkrati pišeta v isto drevo, ustvarita stanje, ki ga nobena ni nameravala.

Ko je vir živa zbirka podatkov ali druga večdatotečna zbirka podatkov, najprej naredite izvoz, skladen z aplikacijo, ali usklajeno posnetek stanja. Rekurziven sprehod po datotekah ni transakcija, kopija spreminjajoče se zbirke podatkov pa ni skladna.

Zapisujte dokončanja in napake ter preverite zbirko podatkov na cilju, ne le izhodno kodo. Obnovitev VPN po izpadu obnovi povezljivost; ne pove nič o tem, ali se je zadnja kopija dokončala ali ali so bile nasprotujoče si spremembe kdaj rešene.

Sorodni članki