Dva servery, jedno VPN, jeden adresár, ktorý musí existovať na oboch miestach, a príkaz, ktorý sa ľahko spustí a ťažko vráti. Predtým, ako ho napíšete, rozhodnite, ktorá kópia je autoritatívna, pretože na tejto odpovedi závisí každá ďalšia otázka o rsync. Jednosmerná replika, zdieľaný pracovný priečinok a archív s verzovaním potrebujú rôzne pravidlá pre úpravy a mazanie. Tunel dodáva cestu a k žiadnemu z nich nemá názor.

Rozhodnite, ktorá kópia vyhrá, skôr než napíšete príkaz

Zapíšte smer jednou vetou vrátane názvu hostiteľa a cesty na každej strane a nechajte ho odsúhlasiť tým, komu údaje patria. V tomto postupe je zdrojom /srv/publish/ a cieľom je účet na fileserver.example, ktorý smie zapisovať len do /srv/mirror/.

Potvrďte prenosové skutočnosti pred kopírovaním: kľúč hostiteľa SSH je overený, cieľový účet môže zapisovať do oblasti repliky a nikam inam a obaja hostitelia majú kompatibilné verzie rsync. Tieto predpoklady bránia tomu, aby sa drobná chyba v plánovaní zmenila na incident s oprávneniami. Tiež vám povedia, ktorý účet sa objaví v protokoloch cieľa, keď sa niečo pokazí.

Prezrite si kópiu v náhľade a prečítajte podrobný zoznam

Spustite kópiu najprv s prepínačom náhľadu a výstup si uložte. Podrobné zmeny vám povedia, čo by sa stalo s každou cestou, čo je oveľa užitočnejšie než dodatočné zhrnutie dokončenia. Uložte výstup do záznamu zmien, aby mal budúci beh s čím porovnávať.

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

Záverečná lomka má význam. Na strane zdroja znamená obsah tohto adresára, zatiaľ čo jej vynechanie pridá ďalšiu úroveň adresára pomenovanú podľa zdroja. Príručka rsync opisuje obe podoby spolu s prepínačmi na zachovanie metadát a sada volieb, ktorú potrebujete, závisí od údajov, nie od zvyku.

Čítajte každý riadok vo vzťahu k zamýšľanému cieľu. Odobranie prepínača náhľadu vykoná kópiu a môže prepísať súbory, a bez voľby mazania zostanú nadbytočné súbory už prítomné v cieli jednoducho tam, kde sú. To je bezpečné predvolené nastavenie len vtedy, ak ste skutočne rozhodli, že ponechané zastarané súbory sú prijateľné. Ak je odpoveď nie, treba urobiť rozhodnutie o mazaní nižšie, nie pridať ďalší prepínač do tohto príkazu.

Potom rozhodnite, či sa mazanie prenáša

Urobiť z cieľa zrkadlo je druhé rozhodnutie, nie spresnenie prvého. Prezrite si ho samostatne, s pridaným prepínačom mazania a ničím iným nezmeneným, aby rozdiel v zozname patril výhradne tomuto rozhodnutiu.

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

Mazanie odstraňuje nadbytočné súbory na prijímajúcej strane v rámci synchronizovaného rozsahu, a preto môže nesprávna cesta zdroja, nepripojený adresár alebo filter vylučujúci viac, než bolo zamýšľané, spôsobiť, že ničivý beh vyzerá ako čisté zrkadlo. Zoznam náhľadu je jediné miesto, kde sa tento rozdiel stane viditeľným, kým nebude drahý. Uchovávajte nezávislú záložnú kópiu tam, kde to údaje ospravedlňujú, a pamätajte, že zrkadlo verne reprodukuje náhodné vymazanie namiesto toho, aby zachovalo históriu.

Náhľad tiež nič nezamyká. Ľudia upravujú súbory medzi skúšobným a skutočným behom a súborové systémy majú vlastné názory, takže beh, ktorý schválite, a beh, ktorý sa vykoná, nie sú tá istá operácia, pokiaľ oba stromy nie sú v pokoji.

Dve jednosmerné úlohy nevytvoria obojsmernú synchronizáciu

Spúšťanie toho istého príkazu v oboch smeroch je v tomto scenári najčastejší spôsob, ako stratiť údaje. Každý smer považuje druhú stranu za cieľ a veselo prepisuje novší obsah a mazania sa zrkadlia v poradí, v akom sa plán spustí.

Ak používatelia musia upravovať obe kópie, je to iné produktové rozhodnutie: spracovanie konfliktov, sledovanie mazania a nástroj navrhnutý pre tento model. Približovať to poradím plánu je spôsob, akým zdieľaný priečinok získa dve verzie každého dokumentu, ktoré nikto nedokáže zosúladiť. Rozhodnite to výslovne, namiesto toho, aby ste to približovali dvoma položkami cron a nádejou.

Automatizujte až potom, ako je politika napísaná

Naplánovaná úloha by mala niesť smer, cesty, politiku metadát a schválené rozhodnutie o mazaní. Uložte týchto päť skutočností do samotného súboru úlohy, nie na wiki stránku, ktorú si budúci správca možno nikdy neprečíta. Zabráňte prekrývajúcim sa behom, pretože dve kópie zapisujúce ten istý strom súčasne vytvoria stav, ktorý ani jedna nezamýšľala.

Keď je zdrojom živá databáza alebo iný viacsúborový súbor údajov, najprv urobte export konzistentný s aplikáciou alebo koordinovanú snímku. Rekurzívny prechod súbormi nie je transakcia a kópia meniaceho sa súboru údajov nie je konzistentná.

Zaznamenávajte dokončenia aj zlyhania a kontrolujte dátovú sadu v cieli, nielen návratový kód. Obnovenie VPN po výpadku obnoví pripojenie; nehovorí nič o tom, či posledná kópia dobehla alebo či boli niekedy vyriešené konfliktné úpravy.

Súvisiace články