Linux E X P R E S

Facebook

Zálohujeme pomocí Dump/Restore 2/2

David Kovář má svá data jako v bavlnce... pokračování.


Inkrementální zálohování

Jak je vidět z předchozích příkladů, úroveň inkrementální zálohy se zadává pomocí přepínače -n, kde n je číslice v rozmezí 0 až 9, přičemž 0 reprezentuje full backup. Jestliže není úroveň vůbec zadaná, dump použije implicitní hodnotu 1.

O inkrementálním zálohování už bylo snad vše řečeno, ještě se ale podíváme na seznam přepínačů, kterými je možno přinutit program dump změnit práci se souborem /etc/dumpdates. Implicitně se záznam do souboru nepřidává, pokud však chceme "přinutit" program dump, aby svou činnost zaznamenal do souboru, použijeme přepínač -u.

Pokročilá práce

Základní operace včetně těch týkajících se inkrementálního zálohování jsme probrali, pokud ale budeme chtít zautomatizovat zálohování tak, abychom nemuseli otrocky ručně spouštět každý den dump, budeme muset sáhnout k pokročilejším technikám.

Program dump má těsnou vazbu se souborem /etc/fstab. Pohledem do tohoto souboru zjistíme, že je rozdělen do šesti sloupců a právě pátý sloupec v pořadí má vztah k "našemu" programu. Jestliže je v tomto sloupci uvedena hodnota 1, znamená to, že odpovídající připojené zařízení bude zálohováno. Pokud tam je naopak uvedena 0, znamená to, že zařízení zálohováno nebude.

Obrázek: Soubor fstab

Na obrázku je uveden jako příklad můj soubor fstab a jak je vidět, v tomto případě bude dump zálohovat pouze diskové oddíly hda6 a hda7, na které jsou popořadě připojeny /home a kořen /.

Takto je možno určovat souborové systémy, které chceme zálohovat. Pokud však hledáme jemnější nástroj, kterým bychom určili přímo adresáře či soubory na zálohovaném souborovém systému, které se budou, či nebudou zálohovat, nemusíme propadat panice. Existují totiž atributy souborových systémů a Dump při načítání struktury souborového systému, před samotnou zálohou, nepřihlíží jen k tomu, jestli je i-node obsazený, nebo ne, ale také kontroluje atribut d i-nodu. K práci s těmito atributy se používají programy lsattr pro výpis atributů a chattr pro nastavení atributů.

kowy@bluestar kowy $ lsattr citaty
------------- citaty

Vidíme, že není nastaven žádný atribut, tedy ani atribut d, soubor citaty je tedy připraven pro zálohování.

kowy@bluestar kowy $ chattr +d citaty
kowy@bluestar kowy $ lsattr citaty
------d------ citaty

Od této chvíle už soubor citaty nebude zálohován.

Rozšířené atributy souborových systému ext2 a ext3 (příkazy chattr a lsattr) nelze zaměňovat s atributem "archivovat" ze systému MS Windows! Atribut d (tzv. "no dump") slouží k úplnému vyřazení souboru ze záloh (například pokud nese citlivé informace). Pro rozhodnutí, zda byl soubor od poslední (inkrementální) zálohy změněn, používá dump datum změny souboru.

Restore

Stalo se neštěstí, disk je mrtvý, teď konečně oceníme svou práci při zálohování. Ke slovu přichází restore, nástroj pro obnovu záloh vytvořených pomocí programu dump. Program restore nabízí více možností jak obnovit soubory, a to buď plnou obnovu, interaktivní obnovu nebo zotavení z přerušené obnovy.

Nejjednodušší plná obnova může vypadat nějak takto:

restore -rf /dev/rmt1

Tento příkaz obnoví všechny zálohy z páskového zařízení /dev/rmt1 a veškeré soubory a adresáře, které v zálohách jsou, uloží do aktuálního umístění (tedy adresáře, ve kterém se nacházíte, když příkaz spustíte).

Jestliže během obnovy přerušíme program restore stisknutím kombinace kláves [Ctrl-c], je možno na takto přerušenou úlohu později navázat. Stačí příště ze stejného místa (adresáře) spustit podobný příkaz:

restore -Rf /dev/rmt1

Pokud byla záloha uložena na více páskách, program restore nejdříve vypíše žádost

Specify next volume #:

a bude čekat na číslo pásky, ze které chcete zotavit přerušenou obnovu. Je-li záloha například uložena na pěti páskách a na dotaz odpovíme číslem 3, bude přeskočena páska 1 a 2 a začne obnova z pásky číslo 3. Jestliže vás napadla otázka, kde si uchovává restore informaci o tom, co už obnovil, aby bylo možno navázat, odpověď je jednoduchá. V aktuálním adresáři si vytvoří soubor ./restoresymtable, ve kterém se postupně ukládají informace o probíhající obnově. Soubor se také používá pro synchronizaci inkrementálních záloh. Po dokončení obnovy poslední inkrementální zálohy je nutné soubor ručně smazat.

Poslední, avšak zajisté nejzajímavější možností, je použití interaktivní zálohy. Spustí se například příkazem

restore -is 3 -f /dev/rmt0

Pokusím se rozebrat funkčnost tohoto příkazu. Přepínač -i znamená, že se jedná o interaktivní obnovu. Následuje -s, který značí, že se bude načítat třetí záloha na pásce a -f už jsme si vysvětlili, že udává zařízení, ze kterého se záloha čte.

Proč je interaktivní obnova tak zajímavá? Jestliže zadáte poslední uvedený příkaz, spustí se restore v režimu procházení zálohou. Jelikož hlavičky všech souborů jsou uloženy na začátcích jednotlivých záloh, restore se rychle zorientuje v souborech a adresářích, které se v záloze nacházejí, a nabídne prompt a nechá na vás, abyste si vybrali, které soubory chcete, a které nechcete obnovit. Není tedy nutné obnovit vždy celou zálohu, ale klidně jen tři soubory, jeden na začátku, jeden uprostřed a jeden na konci, a to dokonce i když budou na jiných páskách. Snadné a hlavně velice rychlé.

Prompt - příkazová řádka. Pomocí interaktivní zálohy je možno jednoduše "nahlédnout" na pásku (na CD-RW případně na jiné médium, na které zálohujeme) a prozkoumat obsah nějakého konkrétního souboru, případně jich pár obnovit.

A jaké že můžete použít příkazy v interaktivním režimu? Pokud znáte Bash, máte vyhráno - příkazy pro pohyb v adresářích jsou stejné. Prompt programu restore navíc přidává (kompletní popis samozřejmě můžete nalézt v manuálových stránkách):

  • add [soubor/adresář] - přidá soubor nebo adresář se všemi podadresáři do výběru pro obnovu;
  • delete [soubor/adresář] - odstraní soubor nebo adresář se všemi podadresáři z výběru pro obnovu;
  • extract - spustí obnovu;
  • quit - opustí program restore (vytvořený výběr pro obnovu bude ztracen).

Pokročilá práce s Restore

Pokud ve vás neustálé vyskakování hlášky Specify next volume #: nahání hrůzu a raději byste vždy prováděli obnovu kompletní, nebo snad nevíte, na kterém disku se soubor nachází, je možné tento dotaz potlačit pomocí přepínače -a. Jestliže vás však rozčiluje, že při každém vložení adresáře do výběru se vloží i celý jeho podstrom a vy byste raději obnovili jen kořen, není nic lehčího, než spustit program restore s parametrem -h. Odteď už se budou adresáře vkládat samostatně bez svých "svěřenců".

Jestliže si nejste jisti v práci s promptem programu restore, doporučujeme si prostudovat některé z prvních dílů našeho seriálu o příkazovém interpretru Bash. Bohdan Milar v něm totiž vysvětloval i naprosté základy, ke kterým patří pohyb po adresářích nebo pojmy relativní a absolutní cesta.

Stejně jako bylo možno provést simulaci zápisu v programu dump, umožňuje simulovanou obnovu i program restore (vypíše se seznam souborů s plnou cestou, které by se ve skutečnosti obnovily). Pro zapnutí této funkčnosti přidejte přepínač -N. Dále je zde možnost, jak přeskočit veškerá chybová hlášení (chybné datové bloky, chyby v hlavičce atd.). Jednoduše spusťte program s přepínačem -y.

Může se stát, že narazíte na chybu, kterou jsem ve článku nepopsal. V této chvíli přichází na řadu opět manuálové stránky, kde jsou běžné chyby vypsány i s vysvětlením. Vše je bohužel pouze v angličtině. Pokud však jste s tímto jazykem spřáteleni, neměl by být problém dotáhnout obnovu do kýženého konce.

Závěr

Pokusil jsem se vyčerpávajícím způsobem popsat, jak pomocí tohoto mocného nástroje vyzrát nad palčivou otázkou, co je to ten dump a jak se to používá. Jistě pro vás teď nebude problém ho používat a budete moci opět klidněji uléhávat ke spánku s jistotou, že je o vaše data dobře postaráno.

Diskuze (1) Nahoru