Zálohování je jedna z nejdůležitějších činností, pokud intenzivněji využíváme počítač k práci. Většina z nás už určitě zažila situaci, kdy disk (příp. i celý comp) odešel do křemíkového nebe a všechna data si vzal s sebou. Obnova je pak zdlouhavá, drahá a někdy téměř nemožná. Tomu je lepší předcházet pravidelným zálohováním. Na Linuxu jde o velmi jednoduchou věc a existuje spousta dostupných nástrojů, které jsou navíc často zdarma. V systému windows je situace mírně složitější a je zde převaha placených nástrojů. Chtěl bych ukázat velmi jednoduchý způsob, jak si zdarma nachystat zálohovací skript.
Robocopy se ve windows objevil už v dobách Windows NT 4.0, ale jako standardní nástroj byl zaveden až v nešťastných Vistách a ve Windows Server 2008. Název je odvozen od – Robust File Copy. Na rozdíl od klasických příkazů copy a xcopy, umožňuje robocopy také:
- pokračovat v kopírování po přerušení, např. v důsledku výpadku síťového připojení
- provádět kopírování ve více vláknech
- tzv. zrcadlení, zajišťuje synchronizaci složek, kopíruje změněné soubory a maže smazané
Neumožňuje kopírování souborů, pouze složek.
Použití Robocopy
Robocopy je nutné spouštět z příkazové řádky nebo pomocí dávky v .bat souboru. Pokud v příkazové řádce zavoláte robocopy získáte následující výstup:
Užitečnější je příkaz:
robocopy /?
který zobrazí všechny možnosti tohoto příkazu.
Základní syntaxe příkazu jerobocopy <Zdroj> <Cíl> [<Volby>]
Volby
Volba | Popis |
---|---|
/s | Zkopíruje i podadresáře, mimo prázdných |
/e | Zkopíruje i podadresáře, včetně prázdných |
/lev:<N> | Zkopíruje i podadresáře do úrovně N |
/sec | Zkopíruje soubory vč. nastavení zabezpečení |
/mir | Používá se pro zrcadlení (synchronizaci), zkopíruje nové a změněné soubory, a smaže (ze zálohy) ty, které byly smazány |
/log | Uloží log do souboru |
Příklady použití
Já používám robocopy převážně na zálohování dat na externí nebo síťový disk, k tomu lze použít velmi jednoduchý zápis:
robocopy e:\data h:\backup\data
Tím zkopírujeme celou složku data na disku e do složky backup\data na disku h:, což může být externí disk. Pokud máme v názvu složky mezeru (což vřele nedoporučuju) je nutné uzavřít celou cestu do uvozovek:
robocopy "e:\moje data" "h:\backup\moje data"
Pokud chceme složku synchronizovat se zálohou, tak použijeme přepínač /mir
robocopy "e:\moje data" "h:\backup\moje data" /mir
Výstup tohoto příkazu bude vypadat nějak takto:
Nejzajímavější část výstupu je na konci, kde můžeme zkontrolovat, jestli nedošlo při kopírování k chybě. Pokud chceme mít možnost si průběh kopírování zkontrolovat, je vhodné zapnout logování do souboru. Pokud nechceme na začátku kopírování log smazat, použijeme volbu /log+.
robocopy "e:\moje data" "h:\backup\moje data" /mir /log:backup.log
robocopy "e:\moje data" "h:\backup\moje data" /mir /log+:backup.log
Při zapnutém logování je potlačen výstup na obrazovku, ten můžeme obnovit přepínačem /tee.
Zapnuté zrcadlení (/mir) způsobí překopírování nových a změněných souborů do cílové lokace, ale také smazání souborů, které jsme ve zdrojové složce smazali, to lze potlačit pomocí přepínače /XX.
robocopy "e:\moje data" "h:\backup\moje data" /mir /XX /tee /log:backup.log
Většinou budeme pro spouštění kopírování používat dávkový soubor (.bat – Batch File), ten vytvoříme jednoduše, pomocí libovolného textového editoru. Jeho obsah může vypadat třeba takto:
robocopy "e:\moje data" "h:\backup\moje data" /mir /XX /tee /log:backup.log
robocopy "e:\filmy" "h:\backup\filmy" /mir /XX /tee /log+:backup.log
pause
Možnosti robocopy jsou samozřejmě větší, doporučují navštívit web microsoftu a google.