rsync kroz VPN: koja strana je izvor istine?
Tunel vam daje put, ne politiku spajanja. Izaberite merodavnu kopiju, pregledajte jednosmernu kopiju u probnom radu i zatim odvojeno odlučite putuju li brisanja.
Dva servera, jedan VPN, jedan direktorijum koji mora postojati na oba mesta i komanda koju je lako pokrenuti, a teško poništiti. Pre nego što je upišete, odlučite koja kopija je merodavna, jer svako naredno rsync pitanje zavisi od tog odgovora. Jednosmerna replika, zajednički radni folder i arhiva sa verzioniranjem zahtevaju različita pravila za izmene i brisanja. Tunel obezbeđuje put i nema mišljenje ni o jednoj od njih.
Odlučite koja kopija pobeđuje pre nego što upišete komandu
Zapišite smer u jednoj rečenici, uključujući ime hosta i putanju na svakoj strani, i neka to odobri onaj kome podaci pripadaju. U ovom postupku izvor je /srv/publish/, a odredište je račun na fileserver.example koji sme da piše samo u /srv/mirror/.
Potvrdite činjenice o prenosu pre kopiranja: ključ hosta SSH je verifikovan, odredišni račun može da piše u oblast replike i nigde drugde, a oba hosta imaju kompatibilne verzije rsync. Ovi preduslovi sprečavaju da mala greška u planiranju postane incident sa dozvolama. Oni vam takođe kažu koji će se račun pojaviti u zapisima odredišta kada nešto krene naopako.
Pregledajte kopiju i pročitajte detaljni spisak
Pokrenite kopiju najpre sa flagom za probni rad i sačuvajte izlaz. Detaljne promene govore šta bi se dogodilo sa svakom putanjom, što je mnogo korisnije od sažetka završetka naknadno. Sačuvajte izlaz u zapis promena da bi sledeće pokretanje imalo sa čim da se uporedi.
rsync -rt --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/
Završna kosa crta je važna. Na izvoru označava sadržaj tog direktorijuma, dok njeno izostavljanje dodaje dodatni nivo direktorijuma nazvan po izvoru. rsync priručnik opisuje oba oblika zajedno sa flagovima za čuvanje metapodataka, a skup opcija koji vam treba zavisi od podataka, a ne od navike.
Čitajte svaki red u odnosu na odredište koje ste nameravali. Uklanjanje flaga za probni rad izvršava kopiju i može da prepiše datoteke, a bez opcije brisanja dodatne datoteke koje već postoje na odredištu jednostavno ostaju tamo gde jesu. To je sigurno podrazumevano ponašanje samo ako ste zaista odlučili da su zastarele datoteke koje ostaju prihvatljive. Ako je odgovor ne, odluku o brisanju ispod treba doneti, a ne dodavati još jedan flag u ovu komandu.
Zatim odlučite da li brisanja putuju
Pretvaranje odredišta u ogledalo je druga odluka, a ne dorada prve. Pregledajte je zasebno, sa dodatim flagom za brisanje i ničim drugim promenjenim, da razlika na spisku u celini pripada toj odluci.
rsync -rt --delete --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/
Brisanja uklanjaju suvišne datoteke na strani primaoca unutar sinhronizovanog opsega, zbog čega pogrešna putanja izvora, nemontiran direktorijum ili filter koji isključuje više nego što je nameravano mogu da učine da razorno pokretanje izgleda kao čisto ogledalo. Spisak probnog rada jedino je mesto gde ta razlika postaje vidljiva pre nego što postane skupa. Držite nezavisnu kopiju za oporavak gde podaci to opravdavaju i zapamtite da ogledalo verno reprodukuje slučajno brisanje umesto da čuva istoriju.
Probni rad takođe ništa ne zaključava. Ljudi menjaju datoteke između probe i stvarnog pokretanja, a datotečni sistemi imaju svoja mišljenja, pa pokretanje koje odobrite i pokretanje koje se izvrši nisu ista operacija osim ako su oba stabla mirna.
Dva jednosmerna posla ne čine dvosmernu sinhronizaciju
Pokretanje iste komande u oba smera najčešći je način da izgubite podatke u ovom scenariju. Svaki smer tretira drugu stranu kao odredište i veselo prepisuje noviji sadržaj, a brisanja se ogledaju onim redom kojim se raspored aktivira.
Ako korisnici moraju da menjaju obe kopije, to je druga produktna odluka: rukovanje konfliktima, praćenje brisanja i alat napravljen za taj model. Približavanje tome redosledom rasporeda je način na koji zajednički folder dobije dve verzije svakog dokumenta koje niko ne može da uskladi. Odlučite to izričito umesto da to približavate sa dva cron unosa i nadom.
Automatizujte tek nakon što je politika napisana
Zakazani posao treba da nosi smer, putanje, politiku metapodataka i odobrenu odluku o brisanju. Stavite tih pet činjenica u samu datoteku posla, a ne na wiki stranicu koju sledeći administrator možda nikada neće pročitati. Sprečite preklapajuća pokretanja, jer dve kopije koje istovremeno pišu isto stablo stvaraju stanje koje nijedna nije nameravala.
Kada je izvor živa baza podataka ili drugi skup podataka sa više datoteka, prvo napravite izvoz konzistentan sa aplikacijom ili usklađenu snimku stanja. Rekurzivni obilazak datoteka nije transakcija, a kopija skupa podataka koji se menja nije konzistentna.
Beležite završetke i greške i proverite skup podataka na odredištu, a ne samo izlazni kod. Vraćanje VPN-a nakon prekida vraća povezanost; ne govori ništa o tome da li je poslednja kopija završena ili da li su konfliktne izmene ikada rešene.