rsync preko VPN-a: koja je strana izvor istine?
Tunel vam daje put, ne politiku spajanja. Odaberite autoritativnu kopiju, pregledajte jednosmjernu kopiju u probnom radu i zatim odvojeno odlučite putuju li brisanja.
Dva poslužitelja, jedan VPN, jedan direktorij koji mora postojati na oba mjesta i naredba koju je lako pokrenuti i teško poništiti. Prije nego je upišete, odlučite koja je kopija autoritativna, jer svako daljnje rsync pitanje ovisi o tom odgovoru. Jednosmjerna replika, zajednička radna mapa i arhiva s verzioniranjem trebaju različita pravila za izmjene i brisanja. Tunel osigurava put i nema mišljenje ni o jednom od njih.
Odlučite koja kopija pobjeđuje prije nego upišete naredbu
Zapišite smjer u jednoj rečenici, uključujući naziv hosta i put na svakoj strani, i neka ga odobri onaj kome podaci pripadaju. U ovom postupku izvor je /srv/publish/, a odredište je račun na fileserver.example koji smije pisati samo u /srv/mirror/.
Potvrdite činjenice o prijenosu prije kopiranja: ključ hosta SSH je provjeren, odredišni račun može pisati u područje replike i nigdje drugdje, a oba hosta imaju kompatibilne verzije rsync. Ti preduvjeti sprječavaju da mala pogreška u planiranju postane incident s dozvolama. Također vam kažu koji će se račun pojaviti u zapisima odredišta kada nešto pođe po zlu.
Pregledajte kopiju i pročitajte pojedinačni popis
Pokrenite kopiju najprije s pokazivačem za probni rad i sačuvajte izlaz. Pojedinačne promjene govore što bi se dogodilo sa svakom putanjom, što je mnogo korisnije od sažetka dovršetka naknadno. Sačuvajte izlaz u zapis promjena kako bi sljedeće pokretanje imalo s čime se usporediti.
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 direktorija, dok njezino izostavljanje dodaje dodatnu razinu direktorija nazvanu po izvoru. Priručnik za rsync opisuje oba oblika zajedno s pokazivačima za čuvanje metapodataka, a skup opcija koji vam treba ovisi o podacima, a ne o navici.
Čitajte svaki redak u odnosu na namjeravano odredište. Uklanjanje pokazivača za probni rad izvršava kopiju i može prebrisati datoteke, a bez opcije brisanja dodatne datoteke koje već postoje na odredištu jednostavno ostaju gdje jesu. To je sigurna zadana vrijednost samo ako ste doista odlučili da su zaostale zastarjele datoteke prihvatljive. Ako je odgovor ne, odluku o brisanju ispod treba donijeti, a ne dodavati još jedan pokazivač u ovu naredbu.
Zatim odlučite putuju li brisanja
Učiniti odredište zrcalom druga je odluka, a ne dorada prve. Pregledajte je zasebno, s dodanim pokazivačem za brisanje i ničim drugim promijenjenim, kako bi razlika na popisu u cijelosti pripadala toj odluci.
rsync -rt --delete --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/
Brisanja uklanjaju suvišne datoteke na strani primatelja unutar sinkroniziranog opsega, zbog čega pogrešna putanja izvora, nemontirani direktorij ili filtar koji isključuje više od namjeravanog mogu učiniti da razorno pokretanje izgleda kao čisto zrcalo. Popis probnog rada jedino je mjesto gdje ta razlika postaje vidljiva prije nego postane skupa. Držite neovisnu kopiju za oporavak gdje to podaci opravdavaju i zapamtite da zrcalo vjerno reproducira slučajno brisanje umjesto da čuva povijest.
Probni rad također ništa ne zaključava. Ljudi uređuju datoteke između probe i stvarnog pokretanja, a datotečni sustavi imaju vlastita mišljenja, pa pokretanje koje odobrite i pokretanje koje se izvede nisu ista operacija osim ako su oba stabla mirna.
Dva jednosmjerna posla ne čine dvosmjernu sinkronizaciju
Pokretanje iste naredbe u oba smjera najčešći je način gubitka podataka u ovom scenariju. Svaki smjer tretira drugu stranu kao odredište i veselo prebrisuje noviji sadržaj, a brisanja se zrcale redoslijedom kojim se raspored aktivira.
Ako korisnici moraju uređivati obje kopije, to je druga produktna odluka: rukovanje sukobima, praćenje brisanja i alat osmišljen za taj model. Približavanje tome redoslijedom rasporeda način je na koji zajednička mapa dobije dvije verzije svakog dokumenta koje nitko ne može uskladiti. Odlučite to izričito umjesto da to približavate s dva cron unosa i nadom.
Automatizirajte tek nakon što je politika napisana
Zakazani posao trebao bi nositi smjer, putanje, politiku metapodataka i odobrenu odluku o brisanju. Stavite tih pet činjenica u samu datoteku posla, a ne na wiki stranicu koju sljedeći administrator možda nikada neće pročitati. Spriječite preklapajuća pokretanja, jer dvije kopije koje istovremeno pišu isto stablo stvaraju stanje koje nijedna nije namjeravala.
Kada je izvor živa baza podataka ili drugi skup podataka s više datoteka, najprije napravite izvoz dosljedan s aplikacijom ili usklađenu snimku stanja. Rekurzivni obilazak datoteka nije transakcija, a kopija skupa podataka koji se mijenja nije dosljedna.
Bilježite dovršetke i pogreške te provjerite skup podataka na odredištu, a ne samo izlazni kod. Vraćanje VPN-a nakon prekida vraća povezivost; ne govori ništa o tome je li posljednja kopija dovršena ili jesu li sukobljene izmjene ikada riješene.