Dva servery, jedno VPN, jeden adresář, který musí existovat na obou místech, a příkaz, který se snadno spustí a těžko vrací. Než ho napíšete, rozhodněte, která kopie je autoritativní, protože na této odpovědi závisí každá další otázka ohledně rsync. Jednosměrná replika, sdílená pracovní složka a archiv s verzováním potřebují různá pravidla pro úpravy a mazání. Tunel dodává cestu a k žádnému z nich nemá názor.

Rozhodněte, která kopie vyhraje, než napíšete příkaz

Zapište směr jednou větou včetně názvu hostitele a cesty na každé straně a nechte ho odsouhlasit tím, komu data patří. V tomto postupu je zdrojem /srv/publish/ a cílem je účet na fileserver.example, který smí zapisovat jen do /srv/mirror/.

Potvrďte přenosové skutečnosti před kopírováním: klíč hostitele SSH je ověřený, cílový účet může zapisovat do oblasti repliky a nikam jinam a oba hostitelé mají kompatibilní verze rsync. Tyto předpoklady brání tomu, aby se drobná chyba v plánování změnila v incident s oprávněními. Také vám řeknou, který účet se objeví v protokolech cíle, když se něco pokazí.

Prohlédněte si kopii v náhledu a přečtěte podrobný seznam

Spusťte kopii nejprve s přepínačem náhledu a výstup si uložte. Podrobné změny vám řeknou, co by se stalo s každou cestou, což je mnohem užitečnější než shrnutí dokončení dodatečně. Uložte výstup do záznamu změn, aby příští běh měl s čím srovnávat.

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

Závěrečné lomítko má význam. Na straně zdroje znamená obsah onoho adresáře, zatímco jeho vynechání přidá další úroveň adresáře pojmenovanou podle zdroje. Příručka rsync popisuje obě podoby spolu s přepínači pro zachování metadat a sada voleb, kterou potřebujete, závisí na datech, ne na zvyku.

Čtěte každý řádek ve vztahu k zamýšlenému cíli. Odebrání přepínače náhledu kopii provede a může přepsat soubory, a bez volby mazání zůstanou přebytečné soubory již přítomné v cíli jednoduše tam, kde jsou. To je bezpečné výchozí nastavení jen tehdy, pokud jste skutečně rozhodli, že ponechané zastaralé soubory jsou přijatelné. Pokud je odpověď ne, je třeba učinit rozhodnutí o mazání níže, ne přidat další přepínač do tohoto příkazu.

Potom rozhodněte, zda se mazání přenáší

Udělat z cíle zrcadlo je druhé rozhodnutí, ne zpřesnění prvního. Prohlédněte si ho samostatně, s přidaným přepínačem mazání a ničím jiným nezměněným, aby rozdíl v seznamu patřil výhradně tomuto rozhodnutí.

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

Mazání odstraňuje nadbytečné soubory na přijímající straně v rámci synchronizovaného rozsahu, a proto může nesprávná cesta zdroje, nepřipojený adresář nebo filtr vylučující více, než bylo zamýšleno, způsobit, že ničivý běh vypadá jako čisté zrcadlo. Seznam náhledu je jediné místo, kde se tento rozdíl stane viditelným, než bude drahý. Uchovávejte nezávislou záložní kopii tam, kde to data ospravedlňují, a pamatujte, že zrcadlo věrně reprodukuje náhodné smazání místo toho, aby zachovalo historii.

Náhled také nic nezamyká. Lidé upravují soubory mezi zkušebním a skutečným během a souborové systémy mají vlastní názory, takže běh, který schválíte, a běh, který se provede, nejsou stejná operace, pokud oba stromy nejsou v klidu.

Dvě jednosměrné úlohy nevytvoří obousměrnou synchronizaci

Spouštění stejného příkazu v obou směrech je v tomto scénáři nejčastější způsob, jak ztratit data. Každý směr považuje druhou stranu za cíl a vesele přepisuje novější obsah a mazání se zrcadlí v pořadí, v jakém se plán spustí.

Pokud uživatelé musí upravovat obě kopie, je to jiné produktové rozhodnutí: zpracování konfliktů, sledování mazání a nástroj navržený pro tento model. Přibližovat to pořadím plánu je způsob, jakým sdílená složka získá dvě verze každého dokumentu, které nikdo nedokáže sladit. Rozhodněte to výslovně, místo abyste to přibližovali dvěma položkami cron a nadějí.

Automatizujte až poté, co je politika napsaná

Naplánovaná úloha by měla nést směr, cesty, politiku metadat a schválené rozhodnutí o mazání. Uložte těchto pět skutečností do samotného souboru úlohy, ne na wiki stránku, kterou si příští správce možná nikdy nepřečte. Zabraňte překrývajícím se běhům, protože dvě kopie zapisující stejný strom současně vytvoří stav, který ani jedna nezamýšlela.

Když je zdrojem živá databáze nebo jiný vícesouborový soubor dat, nejprve pořiďte export konzistentní s aplikací nebo koordinovaný snímek. Rekurzivní průchod soubory není transakce a kopie měnícího se souboru dat není konzistentní.

Zaznamenávejte dokončení i selhání a kontrolujte datovou sadu v cíli, nejen návratový kód. Obnovení VPN po výpadku obnoví připojení; neříká nic o tom, zda poslední kopie doběhla nebo zda byly někdy vyřešeny konfliktní úpravy.

Související články