Dva servera, jedan VPN, jedan direktorij koji mora postojati na oba mjesta i komanda koju je lako pokrenuti, a teško poništiti. Prije nego je upišete, odlučite koja kopija je mjerodavna, jer svako naredno rsync pitanje zavisi od tog odgovora. Jednosmjerna replika, zajednički radni folder i arhiva sa verzioniranjem traže različita pravila za izmjene i brisanja. Tunel daje put i nema mišljenje o bilo kojem od njih.

Odlučite koja kopija pobjeđuje prije nego upišete komandu

Zapišite smjer u jednoj rečenici, zajedno s imenom hosta i putanjom na svakoj strani, i neka to potvrdi onaj koji posjeduje podatke. U ovom postupku izvor je /srv/publish/, a odredište je račun na fileserver.example koji smije pisati samo u /srv/mirror/.

Provjerite činjenice o transportu prije kopiranja: ključ hosta SSH je verifikovan, odredišni račun može pisati u područje replike i nigdje drugo, a oba hosta imaju kompatibilne verzije rsync. Ovi preduslovi sprečavaju da mala greška u planiranju postane incident s dozvolama. Oni vam također kažu koji će se račun pojaviti u zapisima odredišta kad nešto krene po zlu.

Pregledajte kopiju i pročitajte detaljni spisak

Pokrenite kopiju prvo s flagom za probni rad i sačuvajte izlaz. Detaljne promjene govore šta bi se dogodilo sa svakom putanjom, što je mnogo korisnije od sažetka završetka naknadno. Sačuvajte izlaz u zapis promjena da bi sljedeće pokretanje imalo s čim da se uporedi.

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

Završna kosa crta je bitna. Na izvoru označava sadržaj tog direktorija, a ako je izostavite dodaje se dodatni nivo direktorija nazvan po izvoru. rsync priručnik opisuje oba oblika zajedno s 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 namjeravali. Uklanjanje flaga za probni rad izvršava kopiju i može prepisati datoteke, a bez opcije brisanja dodatne datoteke koje već postoje na odredištu jednostavno ostaju tamo gdje jesu. To je sigurna zadana postavka samo ako ste zaista odlučili da su zastarjele datoteke koje ostaju prihvatljive. Ako je odgovor ne, odluku o brisanju ispod treba donijeti, 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, s dodanim flagom za brisanje i ničim drugim promijenjenim, da razlika na spisku u cjelini 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 sinkronizovanog opsega, zbog čega pogrešna putanja izvora, nemontiran direktorij ili filter koji isključuje više nego što je namjeravano mogu učiniti da razorno pokretanje izgleda kao čisto ogledalo. Spisak probnog rada jedino je mjesto gdje ta razlika postaje vidljiva prije nego postane skupa. Držite nezavisnu kopiju za oporavak gdje podaci to opravdavaju i zapamtite da ogledalo vjerno reprodukuje slučajno brisanje umjesto da čuva historiju.

Probni rad također ništa ne zaključava. Ljudi mijenjaju 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 jednosmjerna posla ne čine dvosmjernu sinkronizaciju

Pokretanje iste komande u oba smjera najčešći je način da izgubite podatke u ovom scenariju. Svaki smjer 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 mijenjati obje kopije, to je druga produktna odluka: rukovanje konfliktima, praćenje brisanja i alat napravljen za taj model. Približavanje tome redoslijedom rasporeda je način na koji zajednički folder dobije dvije verzije svakog dokumenta koje niko ne može uskladiti. Odlučite to izričito umjesto da to približavate s dva cron unosa i nadom.

Automatizujte tek nakon što je politika napisana

Zakazani posao treba da nosi 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, prvo napravite izvoz konzistentan s aplikacijom ili usklađenu snimku stanja. Rekurzivni obilazak datoteka nije transakcija, a kopija skupa podataka koji se mijenja nije konzistentna.

Bilježite završetke i greške te provjerite 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 je li posljednja kopija završena ili jesu li konfliktne izmjene ikada riješene.

Povezani članci