Portál AbcLinuxu, 26. dubna 2024 08:43

Zálohování v Linuxu - III

1. 4. 2003 | Petr Novický
Články - Zálohování v Linuxu - III  

Další užitečné programy (i s GUI). Dokončení seriálu.

Úvod

Poznámka redakce: nefunkční odkazy v článku byly aktualizovány 8. dubna 2016.

Dnešní díl našeho seriálu o zálohování v Linuxu bude posledním a budeme se v něm zabývat zbylými příkazy, které jsme minule projít nestihli. Také si vyjmenujeme několik programů, které nám s archivováním pomohou, a u některých z nich si budeme moci vychutnat i příjemné GUI.

Tak nyní se můžeme pustit do vysvětlení příkazů: cpio a afio, které do našeho seriálu ještě také patří:

cpio

Příkaz cpio kopíruje nebo čte soubory z archivu cpio nebo tar. Oproti příkazu tar má jednu velkou výhodu, umí číst ze standardního vstupu, což tar nedokázal (mohl jen vypisovat na standardní výstup). Archiv může být buď soubor na disku, páska nebo roura (pipe). Má tři módy činnosti.

První mód (copy-out) slouží ke kopírování souborů do archívu. Načítá seznam souborů řádku po řádce a přidává je do archivu. Proto se nejčastěji cpio používá spolu s příkazem find, jehož výstup přesměrujeme právě programu cpio. Příkaz find bychom zde měli používat s přepínačem -depth, který zabrání problémům spojeným se špatnými právy v adresáři.

V druhém módu (copy-in) cpio kopíruje soubory z archivu nebo vypisuje jeho obsah. Každý parametr příkazu, který není přepínačem, se použije jako maska, pomocí které můžeme rozhodnout, které soubory se mají kopírovat. To si předvedeme později na příkladech.

V posledním módu cpio jednoduše kopíruje jeden adresář do jiného. Spojuje tak vlastně první dva módy. Seznam souborů čte opět ze standardního vstupu, cílový adresář zadáváme jako parametr, který není přepínačem.

Jednotlivé přepínače:

A nyní si ukážeme několik příkladů použití. Prvním vytvoříme zálohu současného adresáře do souboru záloha.cpio a následným příkazem soubory z tohoto archivu obnovíme:

find -depth . | cpio -o > zaloha.cpio
cpio -i < zaloha.cpio

Jako u ostatních zálohovacích nástrojů můžeme archivovat nejen do souborů na disku, ale také na pásku nebo na diskety. Následující příklady jsou jistě dostatečně názorné:

find -depth . | cpio -o > /dev/ftape
cpio -i < /dev/ftape

Pokud archivujeme na diskety jednoduše nahradíme speciální soubor /dev/ftape za /dev/fd0.

afio

afio není standardním nástrojem, který najdeme v každé distribuci, ale může být velmi užitečný. Jeho hlavní předností oproti příkazu tar je skutečnost, že nekomprimuje celý archiv najednou, ale jednotlivé soubory zvlášť. U nástroje tar nám nemožnost komprimovat jednotlivé části archivu vadila. Pokud došlo k porušení jednoho souboru z archivu, ztratili jsme tím všechny jeho části.

Další jeho výhodou je dvojí bufferování (double-buffering). afio používá buffer, kde čtená data uchovává a odkud je teprve čte a zapisuje například na pásku. Vyjmenujme si jednotlivé přepínače, které ovládají činnost příkazu afio:

Opět si ukážeme několik užitečných příkladů. První z nich ukazuje opět jednoduché zálohování aktuálního adresáře do souboru na disku s použitím komprimace pomocí programu gzip:

find . | afio -oZ /zalohovaci_adr/zaloha.afio.gz
afio -iZ /zalohovací_adr/zaloha.afio.gz

Druhý uvedený příklad samozřejmě ukazuje následné obnovení obsahu aktuálního adresáře z dříve uložené zálohy. Stejně jako v případě příkazu cpio a ostatních můžeme pracovat též s páskovým zařízením nebo s disketovou mechanikou.

find . | afio -o /dev/nftape
ls ./velky.soubor | afio -o /dev/fd0

Poslední uvedený příkaz vytvoří zálohu zadaného souboru na disketě. Pokud kapacita diskety nebude stačit, požádá nás program afio o další disketu. Když budeme chtít obnovit obsah zálohy, stačí jen vložit první disketu a použít příkaz:

afio -i /dev/fd0

Pokud se archiv nachází na více médiích, budeme o ně postupně požádáni.

Vzdálené zálohování

Ještě než si vyjmenujeme některé z nástrojů na zálohování s příjemným GUI, měli bychom se podívat na problematiku vzdáleného zálohování. V mnoha případech nemáme na určitém stroji dostatek místa pro zálohování. Máme např. páskové zařízení připojené na jiném počítači.

Jednotlivé nástroje jako dump, restore, tar a další poskytují přímý přístup na vzdálený systém prostým připsáním jména vzdáleného stroje následovaného dvojtečkou před jméno archivu. Program pak používá rshd (remote shell daemon) nebo in.rshd daemon běžícím na vzdáleném stroji. Tento způsob si ukážeme na příkladu:

tar czf vzdalenyserver:/dev/nftape /home, nebo lépe

tar czO /home | rsh vzdalenyserver dd of=/dev/nftape

Druhý uvedený příkaz v podstatě provede to samé jako ten předchozí, ale má lepší vlastnosti. Nicméně použití tohoto způsobu není ideální hlavně z hlediska bezpečnosti. Měli bychom ho využívat jen pokud jsme chráněni firewallem, nebo na sítích nepřipojených k internetu.

Další a mnohem bezpečnější možností je využití ssh. V tomto případě přistupujeme ze zálohovacího počítače na jednotlivé klienty, kde zálohujeme potřebná data. Vytvoříme spojení s klientským systémem, kde jako parametr uvedeme příkaz vytvoření archivu, výstup přesměrujeme přes rouru příkazu dd, který data zapíše do archivu. Opět uvedu jednoduchý příklad:

ssh klient "tar czO /home" | dd of=/dev/nftape

Komprese

Pokud vytváříme zálohy, je vhodné je kvůli úspoře místa komprimovat. U naprosté většiny nástrojů můžeme archiv zkomprimovat pomocí správného parametru.

Ovšem otázkou zůstává, jakou kompresní metodu zvolit. V prostředí Linuxu jsou nejpoužívanější gzip a bzip2. Pro zálohovaní bude většinou výhodnější použít gzip z několika důvodů. I když bzip2 překonává gzip v komprimačním poměru (asi o 5 procent), gzip je rychlejší, a proto použitelnější. Hlavně v případě rozsáhlých archivů. Další určitě nezanedbatelnou výhodou je skutečnost, že s archivem zabaleným pomocí programu gzip budeme mít daleko menší starosti než s bzip2.

Komplexní zálohovací systémy

V Linuxu je k dispozici celá řade komplexních programů, různých skriptů a pomůcek, které zálohování ulehčují. Kdybychom si měli o všech zmínit, bylo by to na dlouhé lokte. My se zmíníme pouze o některých, které by nás mohly zajímat.

Taper

Taper je jednoduchá zálohovací pomůcka, která stojí jistě stojí za zmínku. Najdeme jej v mnoha linuxových distribucích. Taper využívá pro své 'grafické' rozhraní knihovnu ncurses, pracuje v textovém režimu.

Podporuje různá pásková zařízení, umožňuje vyhledávání zadaného souboru v archivu a obsahuje modul (recovery module), který se postará o poškozené archivy. K dispozici je na následující adrese: Taper Homepage

Mondo Rescue

Další možností je program Mondo Rescue. Tento nástroj toho umí již opravdu hodně. Umí zálohovat na pásky, CD-R, CD-RW nebo na NFS diskový oddíl. Patří mezi opravdu hodně rozšířené, na jeho služby se spoléhají tisíce uživatelů. Nachází se opět ve všech hlavních distribucí Linuxu, podporuje LVM, RAID a všechny hlavní druhy souborových systémů.

Nemůžeme se u něj sice těšit z pěkného GUI, jelikož jej používáme v příkazové řádce, nicméně svou komplexností si své příznivce jistě najde. Stránky tohoto programu najdete zde: Mondo Rescue Homepage

Browseable Online Backup System

Jako poslední program si uvedeme Browseable Online Backup System (BOBS). K zálohování používá disků, soubory procházíme s pomocí webového rozhraní. Naše zálohovací stanice bude muset podporovat jazyk PHP. BOBS lze získat na adrese: BOBS Project Site

Závěr

Jak vidíme, můžeme k problému zálohování přistupovat různými způsoby. Záleží jen na preferencích jednotlivých uživatelů, kterou cestou se vydáme. Doufejme, že každý čtenář si tu svou správně vybere a že ho tento seriál něčemu novému přiučil.

Hlavním smyslem by však mělo zůstat přesvědčit nás o důležitosti zálohování a pomoci s možná krušnými začátky v této oblasti. Věřte, že není nic otravnějšího než znovu pracovat na už dříve vyřešené práci, o kterou jsme díky své vlastní nebo cizí chybě přišli. Mnozí to jistě sami z vlastní zkušenosti znáte a doufám, že od té doby již vše pečlivě zálohujete!

Seriál Zálohování v Linuxu (dílů: 3)

První díl: Zálohování v Linuxu - I, poslední díl: Zálohování v Linuxu - III.
Předchozí díl: Zálohování v Linuxu - II

Odkazy a zdroje

Manuálové stránky příkazu cpio
Manuálové stránky příkazu afio

Další články z této rubriky

VDR a DVB-T2, část 2.
VDR a DVB-T2, část 1.
Šifrovaný Proxmox VE 6: ZFS, LUKS, systemd_boot a Dropbear
MapTiler – proměňte obrázek v zoomovatelnou mapu
Syncthing

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.