Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Záloha dat pomocí rdiff-backup

Problematika záloh by měla zajímat každého uživatele, který nechce přijít o svá data. Ať už používáte pro zálohy libovolné médium, určitě potřebujete šikovný nástroj, který zajistí nejdůležitější části zálohovacích operací. Představíme si rdiff-backup, který umí zajímavé věci jako třeba cestováni v čase.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Říká se, že na počítačích bývají tím nejcennějším data. Přijít byť jen o několikadenní práci není žádný med, natož pokud bychom ztratili například rukopis knihy nebo podobně rozsáhlý dokument. Zálohy proto patří k základním činnostem, které bychom měli na svém počítači provádět. Pro správce serverů to platí samozřejmě dvojnásob.

Existuje mnoho způsobů, jak zálohovat, leckdy stačí prostě zkopírovat nejdůležitější adresáře na jiný disk, vypálit na DVD či nahrát na jiný počítač. Při častějším zálohování bychom uvítali automatizaci této činnosti a některé další zajímavé funkce. Jednou z podobných aplikací je rdiff-backup.

O co jde?

Samozřejmě o zálohování a vše, co s ním souvisí. Pokud bychom ale měli charakterizovat rdiff-backup jednou větou, pak by to asi byla věta podobná této: Zálohovací utilita pro plně automatizované inkrementální zálohy, která dokáže rekonstruovat starší zálohy vytvořené kdykoliv v minulosti.

Možnost zpětného obnovení starších záloh je samozřejmě naprosto klíčová a bez ní se i s kvalitním zálohovacím plánem můžeme dostat do potíží. Představme si modelovou situaci: Píšete diplomovou práci a po několika týdnech zjistíte, že se vám podařilo někdy dříve smazat prvních třicet stran textu, které už v souboru nemáte. S hrůzou zjišťujete, že v zálohách už máte verzi bez zmíněných třiceti stran, které jsou definitivně ztraceny.

Tento problém elegantně řeší právě rdiff-backup. Mezi jeho schopnosti totiž patří také možnost obnovit konkrétní soubory či celou zálohu v podobě, v jaké byla v libovolnou dobu v minulosti, pokud jsme v té době už samozřejmě zálohy pořizovali. Ve výše zmíněné situaci s poškozenou diplomovou prací by stačilo programu říct, aby ze záloh obnovil soubor v takovém stavu, v jakém byl řekněme před 50 dny.

Jak to funguje?

Utilita rdiff-backup je vytvořená v jazyce Python a ke svému běhu využívá program rsync, o kterém jsme nedávno přinesli podrobný článek. Z tohoto faktu plynou základní vlastnosti celé zálohovací utility:

  • kopíruje soubory lokálně či po síti (ssh)
  • přenáší jen změny v souborech
  • zachovává práva souborů

Navíc ale přidává další funkce

  • přenášené patche (diff) ukládá
  • zachovává práva i na médiích, která to neumožňují
  • umožňuje obnovit i smazané soubory
  • vede záznamy a statistiky o zálohách

Z uživatelského hlediska se tedy jedná o rsync, který vytvářené rozdílové soubory nejen na „druhé straně“ aplikuje na zálohované soubory, ale zároveň si je ponechá komprimované v podadresáři rdiff-backup-data. Kromě toto tam ukládá i zmíněné statistiky, případně informace o právech na souborových systémech, které tyto informace nedokáží udržet samy od sebe (například při zálohování na flashdisk s FAT).

Z hlediska zálohování je podstatné, že rdiff-backup dokáže obnovit i smazaný soubor. Ten sice po spuštění dalšího kola zálohování z našeho média zmizí také, ale v adresáři programu zůstanou jeho data uložena. Jsme tedy schopni kdykoliv obnovit i tohoto „ducha“, který už reálně nikde v celku neexistuje.

Jdeme zálohovat

Pokud vás rdiff-backup zaujal, můžete jej nainstalovat ze své distribuce, určitě jej budete mít v příslušných repositářích. Z výše uvedených informací plynou i závislosti: rsync a Python. Pokud jste nainstalovali, můžete rovnou zálohovat:

$ rdiff-backup dulezite/ /mnt/flash/zaloha 

Provede samozřejmě zálohu adresáře dulezite na připojený flashdisk do adresáře zaloha. Tento příkaz můžeme naprosto libovolně opakovat. Program sám zajistí prověření rozdílů a přehraje jen to, co jsme mezi zálohami změnili.

Je pochopitelné, že adresář se zálohami bude postupně narůstat, jak do něj bude utilita připisovat rozdílové diffy. Jak moc bude narůstat záleží především na tom, jak intenzivně se zálohovanými daty pracujeme a jak často provádíme jejich zálohu. Část zpětných dat je samozřejmě možno pohodlně odstranit, jak si ukážeme dále.

Velmi často je potřeba ze zálohy vyjmout konkrétní soubory či adresáře, které pro nás nejsou tak důležité a zbytečně by na médiu zabíraly cenné místo. Slouží k tomu parametr  --exclude.

$ rdiff-backup /home/petr /mnt/zaloha --exclude /home/petr/video /home/petr/src 

Tento příkaz odzálohuje můj domovský adresář, ale vynechá jeho podadresáře video a src. Existuje také parametr --include, který naopak vynutí zálohu konkrétního obsahu. Obě možnosti lze kombinovat:

$ rdiff-backup data /mnt/zaloha --exclude data/videa --include data/videa/rodina 

Vynechali jsme adresář videa, kde máme nedůležité filmečky. Zároveň ale nevynecháváme podadresář rodina s rodinnými záznamy, které chceme pochopitelně zachovat.

Obnovujeme ze záloh

Už umíme vytvářet zálohy, teď nás ale bude zajímat i opačný postup – totiž jak data zase dostat zpět. V případě, že jsme si právě smazali některé soubory a záloha mezi tím neproběhla, stačí jednoduše ze záložního zdroje zkopírovat příslušná data tak, jak jste zvyklí. Program přeci vytváří i plnohodnotný mirroring dat.

Pokud chceme obnovit starší zálohu, je situace o trochu složitější a už budeme muset využít služby utility rdiff-backup. Použijeme přitom parametr -r (jako restore), který určuje, že teď budeme obnovovat místo zálohování. Základní použití je snadné:

$ rdiff-backup -r now /mnt/zaloha /home/petr/obnova 

Příkaz způsobí obnovení posledního stavu do adresáře obnova. Povšimněte si časového údaje now, který určuje současnost. Využít je možno mnoho různých údajů včetně přípon určujících následující období:

  • s – sekundy
  • m – minuty
  • h – hodiny
  • D – dny
  • W – týdny
  • M – měsíce
  • Y – roky

Příklady časových údajů:

  • 20m – před dvaceti minutami
  • 3W – před třemi týdny
  • 3M21D6h18m – před třemi měsíci, jednadvaceti dny, šesti hodinami…
  • konkrétní datum a čas: 2008–04–26T12:37:08

Takto můžeme libovolně určit časový bod, ke kterému chceme obnovu provést. Samozřejmě je pravděpodobné, že v onom přesném historickém bodě jste zálohu neprováděli. V tom případě bude vybrána nejbližší předcházející záloha. Pokud tedy zálohujete každé pondělí a ve středu zvolíte -r 1W, pak to sice značí minulou středu, ale bude obnovena záloha z minulého pondělí.

Stejně tak je možno vybrat ze zálohy jediný soubor, nemusíte obnovovat celou strukturu. Stačí jednoduše zvolit konkrétní objekt na zálohovacím médiu:

$ rdiff-backup -r 2W /mnt/zaloha/diplomka.odt /home/petr/diplomka.odt 

Stejně tak je možno zvolit konkrétní diff a program z něj pozná, ke kterému souboru a časovému údaji patří a automaticky provede příslušnou obnovu:

$ rdiff-backup zaloha/rdiff-backup-data/increments/soubor.2008-11-22T09:07:41+01:00.snapshot.gz 

Vzdálená práce

Všechny zde zmíněné operace je možno provádět nejen lokálně (jak bylo ukázáno), ale také pomocí ssh spojení na vzdáleném počítači. Na něm musí být také nainstalován rdiff-backup, aby spolu mohly obě strany komunikovat. Nemá smysl všechny příkazy opakovat, syntaxe je stejná, jediné, co se změní, je určení jedné (nebo i obou) z cest. Konkrétní příklad:

$ rdiff-backup petr@www.root.cz::/var/www /mnt/zaloha/web 

Tímto jednoduše odzálohujeme náš web k nám na lokální zálohovací médium. Samozřejmě budeme dotázání na heslo a opět se přenášejí jen změny, při příští záloze již vše proběhne o poznání rychleji. Naprosto stejně je možno zálohovat v opačném směru:

$ rdiff-backup /home/petr petr@www.root.cz::/home/petr/zaloha 

Další drobty

Už jsem zmínil, že záloha jako celek postupně bobtná, protože v ní přibývá rozdílových souborů. Existuje jednoduchý způsob, jak se můžete starších záloh zbavit. Můžete tak například odstranit informace o zálohách starších než dva měsíce:

$ rdiff-backup --remove-older-than 2M --force /mnt/zaloha 

Od verze 0.13.1 existuje možnost určit konkrétní počet historických záloh, které mají být zachovány, a to pomocí přípony B (jako backups). Chceme-li si ponechat posledních 10 záloh, stačí tedy zvolit:

$ rdiff-backup --remove-older-than 10B --force /mnt/zaloha 

Užitečná je také možnost zobrazit časové údaje o konkrétním souboru. To se hodí v případě, že potřebujete obnovit soubor, ale netušíte, kdy jste zálohy prováděli a jaké možnosti tedy máte.

TIB2012

       
$ rdiff-backup -l zaloha/diplomka.odt
Found 2 increments:
    diplomka.odt.2008-11-23T09:07:41+01:00.missing   Wed Nov 23 09:07:41 2008
    diplomka.odt.2008-11-23T09:19:49+01:00.snapshot.gz   Wed Nov 23 09:19:49 2008
Current mirror: Wed Nov 23 14:28:00 2008 

Kromě toho je možné získávat další údaje jako například seznam změn od určitého časového bodu. Chceme například vědět, jak se záloha změnila za posledních pět dní:

$ rdiff-backup --list-changed-since 5D zaloha/
changed .
diplomka.odt     clanek.txt
deleted fotka.jpeg 

Závěrem

Zmínil jsem jen stěžejní možnosti programu rdiff-backup. Článek rozhodně není vyčerpávající, ale zde uvedené příklady by vám měly stačit k běžnému zálohování a ochraně dat. Další informace naleznete v manuálové stránce, případně v dokumentaci na domovské stránce projektu.

Anketa

Kam zálohujete?

       

Petr Krčmář

Petr Krčmář

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Vystudoval elektroniku se zaměřením na počítačové systémy, nyní se zabývá médii, především těmi elektronickými.

Školení: Zavedení Google Apps do firmy

Cílem školení je provést účastníky jednotlivými kroky zavedení Google Apps na vlastní doménu a seznámit je se základy administrace, aby byli schopni Google Apps sami udržovat a rozvíjet dle potřeb. Účastníci se také dozví, jak používat základní služby v balíku Google Apps (Gmail, Kalendář, Dokumenty a Weby Google) a jaké jsou možnosti jejich využití ve firmě.

Podrobnější informace a přihláška  

Ohodnoťte jako ve škole:
Průměrná známka 2,94

Přehled názorů

zpusob mazani zaloh
nero 27. 11. 2008 07:54
Nový
├ 
Re: zpusob mazani zaloh
Petr Krčmář 27. 11. 2008 07:56
Nový
└ 
Re: zpusob mazani zaloh
Petr 28. 11. 2008 15:31
Nový
 
└ 
Re: zpusob mazani zaloh
anonymní uživatel 28. 11. 2008 16:04
Nový
Fajn
volca 27. 11. 2008 08:34
Nový
└ 
Re: Fajn
anonymní uživatel 27. 11. 2008 12:44
Nový
 
├ 
Re: Fajn
martin 27. 11. 2008 15:38
Nový
 
└ 
Re: Fajn
volca 27. 11. 2008 22:04
Nový
 
 
└ 
Re: Fajn
anonymní uživatel 28. 11. 2008 09:38
Nový
 
 
 
└ 
Re: Fajn
volca 30. 11. 2008 10:56
Nový
Vypadá to dobře
Xerces 27. 11. 2008 08:53
Nový
└ 
Re: Vypadá to dobře
Petr Krčmář 27. 11. 2008 12:10
Nový
 
└ 
Re: Vypadá to dobře
Xerces 28. 11. 2008 11:37
Nový
sietovy disk
anonymní uživatel 27. 11. 2008 08:57
Nový
rdiff-backup a chybka
dik 27. 11. 2008 09:05
Nový
Rdiff-backup pod win32
s0iL 27. 11. 2008 09:49
Nový
├ 
Re: Rdiff-backup pod win32
Milan Masek 27. 11. 2008 10:54
Nový
│
└ 
Re: Rdiff-backup pod win32
s0iL 27. 11. 2008 23:31
Nový
└ 
Re: Rdiff-backup pod win32
Dejf 27. 11. 2008 17:08
Nový
 
└ 
Re: Rdiff-backup pod win32
Jindra Šaur 7. 12. 2008 16:38
Nový
šifrování
Tom 27. 11. 2008 10:24
Nový
└ 
Re: šifrování
volca 28. 11. 2008 08:28
Nový
Záloha na vzdálený počítač oddělený od sítě
Stanislav Brabec 27. 11. 2008 12:54
Nový
└ 
Re: Záloha na vzdálený počítač oddělený od sítě
Jindra Šaur 7. 12. 2008 16:43
Nový
něco zálohovat častěji něco ne
Marek Chlup 27. 11. 2008 14:22
Nový
└ 
Re: něco zálohovat častěji něco ne
volca 28. 11. 2008 08:30
Nový
problem s verzemi
Petr Podrabsky 27. 11. 2008 18:55
Nový
├ 
Re: problem s verzemi
anonymní uživatel 27. 11. 2008 21:05
Nový
│
└ 
Re: problem s verzemi
Petr Podrabsky 28. 11. 2008 07:47
Nový
│
 
└ 
Re: problem s verzemi
Jindra Šaur 7. 12. 2008 16:45
Nový
├ 
Re: problem s verzemi
Milan Masek 28. 11. 2008 00:03
Nový
└ 
Re: problem s verzemi
Shadow 2. 1. 2009 23:56
Nový
RE: Záloha dat pomocí rdiff-backup
Erik Brožek 27. 11. 2008 22:29
Nový
└ 
RE: Záloha dat pomocí rdiff-backup
anonymní uživatel 28. 11. 2008 09:16
Nový
archfs
gapon 29. 11. 2008 14:50
Nový
Jak na velke soubory?
Jaromir 9. 12. 2008 21:41
Nový
└ 
Re: Jak na velke soubory?
petr 21. 3. 2010 20:58
Nový
 
└ 
Re: Jak na velke soubory?
Kit 8. 8. 2010 00:05
Nový
 
 
└ 
Re: Jak na velke soubory?
KSJ 23. 9. 2010 16:12
Nový
proc se prenasi cely soubor?
mijo 23. 3. 2011 22:02
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem