Moje knowledge base, pro Vás i pro mne. Ale také spousta blbin okolo.

Jakub Skála



jakub.skala@gmail.com
BTC

Automatické zálohování do ZIP pomoci open source 7zip

09.03.2011 17:22

První pravidlo práce na počítači zní zálohuj, zálohuj a ještě jednou zálohuj, jenže ruku na srdce, kdo z nás má náladu zálohovat ručně. Samozřejmě každý operační systém nabízí komplexní zálohovací nástroj (například Windows a jejich NT Backup). Avšak tyto nástroje ukládají každý v jiném formátu a tak když si zálohu otevřete na PC s jiným operačním systémem, máte malou šanci obnovit takto zálohovaná data. Ideálním řešením se proto jeví archivační formáty.

 
Co budeme potřebovat?

Hlavně se nám bude hodit aplikace 7-Zip (stáhnete ji zdarma z 7-zip.org). Je k dostání pro operační systémy Microsoft Windows a GNU/Linux. Verze pro Apple Mac OS X nejspíše neexistuje. Samozřejmě lze následující postup aplikovat na libovolný archivační program s možností ovládání skrze příkazový řádek.

Jak na to?

V první řadě si kdekoliv (například v rootu do složky skripty) vytvoříme textový soubor a pojmenujeme si ho například zaloha.txt. Tento soubor si otevřeme v režimu pro editaci a začneme psát. V první řadě se dostaneme do složky s programem 7-Zip. Pro uživatele MS Windows bude úvod souboru vypadat takto:

cd %programfiles%
cd 7-Zip

Nyní je již čas na realizaci samotné zálohy. Z praktických zkušeností je efektivnější sepsat seznam věcí, které se zálohovat nemají, než sepisovat seznam věcí, které se zálohovat mají. Proto si v té samé složce vytvoříme soubor s názvem zaloha.conf. Do tohoto souboru napíšeme pod sebe seznam věcí, které se zálohovat nemají (například zápis *.tmp určuje, že se nebudou zálohovat žádné soubory s koncovkou TMP). Další řádky skriptu zaloha.txt budou vypadat takto:

del "C:\Skripty\zaloha.zip"
7z -tzip a "C:\Skripty\zaloha.zip" "C:\Users\*" -x@"C:\skripty\zaloha.conf" -r -p"heslo" -mx0

Nyní si rozebereme co který příkaz znamená a jak tyto dva řádky změnit pro jiné účely.

  • del znamená, že se smaže předešlá záloha
  • 7z vyvolá aplikaci 7-Zip v textovém režimu
  • -tzip zvolí metodu komprese na ZIP (lze použít i 7zip, -t7z, ISO, -tiso, atd.)
  • a určuje, že se bude přidávat do archívu
  • C:\Skripty\zaloha.zip je cesta k cílovému souboru se zálohou
  • C:\Users\* je cesta ke složce, která se bude zálohovat
  • -x@ značí cestu k souboru se seznamem výjimek
  • -r podrobuje tomuto seznamu i podsložky
  • -p nastavuje archívu heslo
  • -mx0 nastavuje kompresi na režim kopírování  

Soubor v tomto znění provádí úplnou zálohu, nicméně 7-Zip umožňuje i vytvoření úplné zálohy a následné doplňování zálohou rozdílovou. Tento způsob zálohy je sice nutno jednou za čas promazat (z důvodu uvolnění místa na disku), nicméně je rychlejší. Pro tento způsob zálohování je nutno vynechat řádek s příkazem del a zaměnit parametr a (add) za parametr u (update). Pokud nechcete zálohu zabezpečovat heslem, stačí vynechat -p, atd.

Uživatelé Linuxu musí souboru zaloha.txt přidat právo pro spouštění, uživatelé Windows tento soubor přejmenují na zaloha.bat nebo zaloha.cmd. Nyní již stačí nastavit automatické spuštění tohoto skriptu ve správci naplánovaných úloh a je hotovo. Pokud vám nebude záloha vznikat, zkontrolujte výpis 7-Zipu a následně práva na svém disku.