Kapitola 27. Synchronizace souborů

Obsah

27.1. Programy pro datovou synchronizaci
27.2. Výběr vhodného programu
27.3. Úvod do Unison
27.4. Úvod do programu CVS
27.5. Úvod do Subversion
27.6. Úvod do rsync
27.7. Úvod do mailsync

Abstrakt

Řada lidí používá více počítačů najednou — jeden počítač doma, jeden nebo více počítačů v práci a laptop nebo PDA na cestách. Dříve či později budete potřebovat upravovat určitý soubor na všech počítačích, ale současně mít všude k dispozici aktuální verzi bez nutnosti ručního kopírování souborů.


27.1. Programy pro datovou synchronizaci

Pro počítače trvale připojené do rychlé sítě není synchronizace dat žádným problémem. V takovém případě je nejjednodušší cestou nasazení síťového souborového systému, jako je NFS, který umožňuje ukládat všechna data na serveru a přistupovat k nim z klientských stanic v síti. Toto řešení je však vyloučené v případě pomalejší nebo dočasné sítě. I na laptopu potřebujete lokální kopii všech důležitých souborů. Tehdy přichází na řadu synchronizace souborů. Ta zajistí, že pokud je soubor na jakémkoliv počítači změněn, dojde k aktualizaci souboru na všech ostatních počítačích. Automaticky lze synchronizaci provádět pomocí programů scp nebo rsync. Ne vždy je však tento způsob žádoucí, protože může dojít např. k přepisu novější verze starší.

[Warning]Riziko ztráty dat

Dřív než začnete používat systém k synchronizaci dat, seznamte se s funkcemi zvoleného programu a proveďte několik testů. U zvláště důležitých dat proveďte zálohu.

Ruční synchronizace je vysoce časově náročná a náchylná k chybám. Tomu lze předejít automatizací. Zde vám některé z programů, které takovou automatizaci umožňují, krátce představíme. Pokud se pro některý z nich rozhodnete, nezapomeňte si pročíst jeho dokumentaci.

27.1.1. Unison

Unison není síťový souborový systém. Soubory jsou jednoduše ukládány a upravovány lokálně. Program Unison pak po ručním spuštění provede synchronizaci dat. Při první synchronizaci se na obou počítačích vytvoří databáze obsahující kontrolní součty, časová razítka a informace o přístupových právech jednotlivých zvolených souborů. Při dalším spuštění již program Unison rozpozná, které soubory se mají synchronizovat, a navrhne přenos na jiný počítač. Obvykle lze všechny návrhy akceptovat.

27.1.2. CVS

CVS je nejčastěji používán pro správu verzí zdrojových kódů programů. Nabízí možnost udržování kopie souborů na řadě počítačů. Použitelný je samozřejmě také pro synchronizaci dat. CVS spravuje centrální sklad dat na serveru. Neukládají se jen samotné soubory, ale také záznamy o změnách. Změny se provádějí lokálně a odesílají se do centrálního skladu odkud mohou být stahovány ostatními uživateli. Odeslání i stažení změn vyžaduje aktivní účast uživatele.

CVS je odolný proti chybám, které nastanou v případě současného odesílání ze dvou různých počítačů. Všechny změny spojuje, ale pokud ke změnám dojde současně na jedné řádce, nahlásí konflikt. Databáze zůstává i v případě konfliktu v konzistentním stavu. Konflikty jsou viditelné a řešitelné pouze na klientských stanicích.

27.1.3. subversion

Na rozdíl od CVS, které se vyvinulo živelně, je subversion pečlivě navržený projekt, technicky zdokonalený následník CVS.

Program subversion byl zdokonalen v mnoha směrech. CVS umí z historických důvodů pracovat jen se soubory a nikoliv s adresáři, zatímco subversion udržuje i historii adresářů, které lze kopírovat a přejmenovávat stejně jako soubory. Ke každému adresáři i souboru lze navíc přiřadit metadata, pro která je taktéž udržována historie verzí. Na rozdíl od CVS podporuje subversion transparentní přístup přes speciální síťové protokoly, např. WebDAV (Web-based Distributed Authoring and Versioning). WebDAV rozšiřuje funkčnost HTTP protokolu o zápis do souborů na vzdálených webových serverech s možností spolupráce.

Při vývoji subversion byly využity již existující programy. Proto je společně se subversion vždy používán webserver apache a rozšíření WebDAV.

27.1.4. mailsync

Program mailsync se používá pouze k synchronizaci elektronické pošty ve schránkách na různých serverech. Synchronizovat lze jak lokální schránky, tak schránky IMAP.

Zprávy jsou synchronizovány či mazány v závislosti na ID zprávy obsaženém v hlavičce. Synchronizace je možná mezi jednotlivými schránkami nebo skupinami schránek.

27.1.5. rsync

Pokud není potřeba správa verzí, ale je potřeba synchronizovat rozsáhlé adresářové struktury přes pomalou síť, je vhodné použít nástroj rsync, který nabízí dobrý mechanismus pro přenos změn v souborech, a to nejen textových, ale i binárních. Aby rsync zjistil změny v souborech, rozdělí je na jednotlivé bloky, ze kterých spočítá kontrolní součty.

Zjišťování změn je poměrně náročná činnost. Systémy, na kterých se má synchronizace provádět, by měly být náležitě vybaveny. Důležitý je zejména dostatek operační paměti.