Dnes si ukážeme, jak lze provádět zálohy místních a vzdálených systémů pomocí programu rdiff-backup a jak na stanice s Windows.
21.2.2005 10:00 | Petr Zajíc | czytane 14947×
RELATED ARTICLES
KOMENTARZE
V minulém díle tohoto miniseriálu jsme si vysvětlili rozdíly mezi
jednotlivými metodami zálohování a nainstalovali jsme program
rdiff-backup. Dnes se podíváme na to, co tento program umí a na slíbené
zálohování stanic s Windows.
Začínáme
Jak byste asi čekali, nejjednodušší možnost využití programu
rdiff-backup je prostá záloha
souborů. Pakliže chcete například zazálohovat obsah složky data ve svém
domovském adresáři do složky backup tamtéž, postačí vám znát
následující příkaz:
rdiff-backup ~/data
~/backup
Pokud si něco takového zkoušíte a podíváte se do adresáře backup,
zjistíte, že obsahuje soubory z původního adresáře (včetně případných
podadresářů) a navíc jeden adresář rdiff-backup-data. V něm jsou umístěna
metadata o zálohování a případné změny v souborech od poslední zálohy.
Pokud jste zvídaví, můžete si jej prohlédout; nicméně slouží jen pro
zálohování samotné a nemusíte se o něj starat.
Jestliže změníte nějaké soubory v adresáři data a spustíte
rdiff-backup znovu, bude již situace mnohem zajímavější. Já mám
například v adresáři soubor petr.txt, do něhož připíšu data a zopakuji
zálohování:
echo "Dalsi data..."
>> ~/data/petr.txt
rdiff-backup ~/data ~/backup
Stane se několik věcí:
- V adresáři ~/backup bude nyní soubor petr.txt zaktualizován
- Do adresáře ~/backup/rdiff-backup-data se zapíší metadata o novém
zálohování, jeho průběhu, výsledku, případně chybách.
- V adresáři ~/backup/rdiff-backup-data/increments vznikne soubor
popisující rozdíl mezi
starou a novou verzí souboru petr.txt. To je důležité, protože mi to
umožní obnovit libovolnou předchozí verzi zálohovaného souboru.
Pozn.: Mimochodem, soubory popisující
rozdíly mezi starou a novou verzí jsou většinou komprimovány. Mělo by
se tak ušetřit něco místa na disku. V praxi to funguje velmi dobře u
textových souborů, u binárních je však většinou úspora místa poměrně
nevelká. Není divu - jestliže budete například porovnávat dvě verze
souborů textového procesoru OpenOffice.Org, bude se jednat o již
komprimované soubory. Jejich další komprimací se již nic nevyřeší.
Kompresi inkrementačních souborů však lze vypnout, vypnout pro některé
přípony nebo dokonce vypínat a zapínat dle rozmaru. Rdiff-backup bude i
nadále fungovat.
Zálohování po síti
Na lokální zálohování se rdiff-backup pochopitelně použít dá. Mnohem
užitečnější však může být možnost zazálohovat data ze vzdáleného
stroje. Je to jednoduché. Pomocí následujícího příkazu:
rdiff-backup
[uživatel]@[stroj (IP nebo název)]::/etc ~/etc_backup
tak například můžeme zazálohovat adresář /etc ze vzdáleného stroje
do vlastního (do adresáře ~/etc/backup). Skript využívá ssh, takže je
přenos relativně bezpečný. Dokumentace dokonce uvádí, že
lze takto zálohovat i data mezi dvěma
vzdálenými systémy. Pochopitelně, že v každém případě hrají roli
práva, která máte na jednotlivých systémech přidělena (například
zálohovat smíte jen tam, kam máte povolena práva k zápisu).
Zálohování jen vybraných souborů
Vraťme se ale k úlohám souvisejícím s typickým zálohováním dat. V
takovém případě pravděpodobně nebudete chtít zálohovat celé adresáře,
ale jen vybrané soubory. Programu rdiff-backup to můžeme sdělit pomocí
přepínačů. Jejich pochopení vyžaduje trochu cviku a nebudu jej zde
podrobně rozebírat, k tomu slouží manuál.
Pro praxi je však dobré vědět, že rdiff-backup může přijímat seznam
souborů, které má zálohovat, a to například ze souboru nebo ze
standardního vstupu. Je to jediný způsob, kterým jsem rdiff-backup
donutil zálohovat ze stanic s Windows soubory jen určitých několika typů (přípon).
Scénář pak vypadá nějak takto:
[seznam souborů] |
rdiff-backup --include-filelist-stdin --exclude '**' [co] [kam]
Kde platí, že:
- [seznam souborů] je nějakým způsobem vytvořený seznam toho, co se
bude zálohovat, poslaný na standardní výstup
- --include-filelist-stdin je přepínač přikazující programu
rdiff-backup, že má brát v úvahu seznam souborů k zálohování dodaný na
standardní výstup
- --exclude '**' je přepínač, který řekne programu, že cokoli je ve
zdrojovém adresáři, ale není to v seznamu na standardním výstupu, tak to
nemá zálohovat
- [co] je umístění zdrojového adresáře (obsahuje data k zálohování)
- [kam] je umístění zálohy
Praxe
V praxi jsem při zálohování windowsových počítačů postupoval následujícícm způsobem:
- Na stanicích s Windows jsem definoval uživatele s hesly a s
přístupovými právy pro čtení do těch adresářů, které jsem si přál
zálohovat
- Definoval jsem si seznam přípon souborů, které budu zálohovat.
Vypadal nějak takto:
\.doc$
\.xls$
\.txt$
a tak dále...
(bude sloužit pro grep, proto ty metaznaky)
- pomocí samby jsem adresáře připojil (jen pro čtení, nevznikl tedy
oblíbený problém se zápisem na NTFS svazky z linuxu)
- nechal jsem si vyjet seznam všech souborů na takto připojeném
disku a prohnal to grepem - vznikl seznam souborů, o něž jsem měl pro
účely zálohování zájem
- tento seznam jsem předal programu rdiff-backup ke zpracování a
provedl zálohu
- poté jsem složku (někdy celý disk) zase odpojil
- To celé jsem uložil jako skript a naplánoval pomocí cronu, takže
se to dělá pravidelně každou noc.
V příštím, posledním díle se s vámi podělím o zálohovací skript,
který dělá to, co tady popisuji a nastíním některé problémy, které jsem
v souvislosti s tím musel řešit. Rovněž se podíváme na to, jak data z
takto vytvořené zálohy můžeme obnovit.