Wuwejův zápisník

Jak zálohovat ve Windows

16.12.2005 22:29, Wu | počítače | komentáře -

Používal jsem SyncBack (freeware, V3.2.9) a byl celkem spokojený, umí strašně moc nastavení, rozdílové zálohování do zipu a tak podobně. Jenže potom, co jsem přeinstaloval počítač, se mi nechtělo všechny cesty nastavovat znovu; otázka kompletního přechodu na Linux, ač poněkud zatlačena do pozadí, taky pořád visí ve vzduchu, zkrátka rozhodl jsem se zůstat u nástrojů příkazové řádky. K zálohování, ježto pro něj hodlám používat disk v USB šuplíku (odkud to jednou za čas vypálím na CD), mi postačí nějaké inteligentní kopírování adresáře i s podadresáři. Inteligentní alespoň tak, aby kopírovalo jenom novější a změněné soubory. Chtít aby se smazané soubory mazaly i v záloze, to by bylo příliš troufalé, ale co, nadbytečná záloha je lepší než žádná záloha. Protože uživatelský profil prohlížeče Firefox pod Windows obsahuje kromě záložek, hesel nebo rozšíření i cache, kde nevidím příliš velký smysl v zálohování, je tu další požadavek - možnost některou část cesty ze zálohování vyjmout. Nakonec by se hodilo cílový adresář zazipovat, pokud možno do archivu pojmenovaného aktuálním datem.

Jak na to? Ještě z dřevních dob DOSu si vzpomínám na příkaz xcopy. K mému překvapení je ještě inteligentnější než jsem čekal.

xcopy [odkud] [kam] /E /H /C /D /Y /EXCLUDE:[soubor se seznamem výjimek]

  • /E kopíruje všechny adresáře a podadresáře včetně prázdných
  • /H kopíruje také systémové a skryté soubory
  • /C pokračuje v kopírování i v případě, kdy došlo k chybě
  • /D kopíruje soubory, které jsou novější než jsou ty v cílovém adresáři
  • /Y vypne dotazování se uživatele, jestli chce přepsat soubor v cílovém adresáři (v případě že už tam soubor je)
  • /EXCLUDE:[soubor výjimek] vyjme z kopírování soubor nebo soubory, jejichž cesta obsahuje libovolný řádek ze souboru výjimek.

Jako komprimační program používám vynikající 7zip. Je pod licencí GNU LGPL, umí rozbalit snad všechno, ke komprimaci lze použít kromě interního 7z ještě tar a zip. Součástí je také verze pro příkazovou řádku.

"C:\Program Files\7-Zip\7z" a -tzip [jméno archivu] [archivovaný adresář] -r

  • a je příkaz pro přidání do archivu
  • -tzip je volba typu komprimace, tedy zip
  • -r je volba pro rekurzi, tedy zabalení včetně podadresářů

Ještě datum. Příkaz "date" se bohužel moc nedá použít, datum potřebuji mít v proměnné, abych ho mohl použít v názvu souborů. V linuxovém bashi to jde, použije se příkaz uzavřený do zpětných apostrofů, tím se na jejich místo dosadí výstup příkazu. Ve windows jsem to neobjevil. Jistě by se dalo něco vymyslet, přesměrovat výstup do souboru a přečíst ho pomocí for cyklu, napsat si pomocný program atd., jenže to je takové ... No zkrátka, zkusil jsem, jestli náhodou už proměnná s datem není definovaná, a ona byla - %date%. Formát sice není ideální, ve jméně je mezera, ale přes to se přenesu.

Takže máme vše podstatné. Vytvořil jsem jeden bat soubor se samotným příkazem pro kopírování (backupOne.bat):

@echo off
md %2
if ""=="%3" (xcopy %1 %2 /E /H /C /D /Y) else (xcopy %1 %2 /E /H /C /D /Y /EXCLUDE:%3)

Přijímá tři parametry, první je zálohovaný adresář, druhý je adresář cílový a třetí nepovinný parametr nese informaci o souboru s výjimkami. Tento soubor potom volám ze souboru druhého, s celou definicí zálohování a všech zálohovaných adresářů (backupAll.bat).

@echo off
set BK_TARGET=k:\zaloha
md %BK_TARGET%
call backupOne "d:\Dokumenty" "%BK_TARGET%\dokumenty"
call backupOne "C:\Documents and Settings\Wu\DATAAP~1\Mozilla" "%BK_TARGET%\wu-mozilla" excludes.txt
call backupOne "C:\Documents and Settings\Wu\DATAAP~1\Thunderbird" "%BK_TARGET%\wu-thunder"
call backupOne "C:\Documents and Settings\Wu\DATAAP~1\Miranda IM" "%BK_TARGET%\wu-miranda"

call "C:\Program Files\7-Zip\7z" a -tzip k:\zaloha_%date%.zip %BK_TARGET%\* -r

pause

Soubor výjimek pro adresář Mozilly obsahuje dva řádky:

\Cache\
\Cache.Trash\

A je to. Jak zálohujete vy?

12345
1134768540000

Kategorie

Informace

Kontakt

Sledujte také

Archiv

STRÁNKY ARCHIVOVÁNY NÁRODNÍ KNIHOVNOU ČR

CBDB.cz – Databáze knih a spisovatelů, knihy online