Dávkový skript Windows pro zálohování dat

Uživatelé počítačů, kteří vyrostli na pokročilých počítačích Mac a Windows, si toho možná neuvědomují, ale kdysi, dávno, byly všechny osobní počítače ovládány pomocí rozhraní příkazového řádku. Ano, to neohrabané příkazové pole na vašem počítači se systémem Windows bývalo doslova jediným způsobem, jak většina lidí kdy interagovala s počítačem. Rozhraní příkazového řádku se do značné míry spoléhalo na malé programy zvané „skripty“, což byly kolekce příkazů operačního systému používané k provádění běžných úkolů.

Přestože jsou grafická uživatelská rozhraní dnešních počítačů PC o světelné roky propracovanější a snáze se používají než staré příkazové řádky, stále existuje použití pro starší způsob ovládání počítače. Jednou z nejběžnějších a velmi vhodných aplikací pro skripty příkazového řádku je zálohování dat. Skripty příkazového řádku lze automatizovat tak, aby se spouštěly kdykoli bez jakékoli lidské interakce a mají několik omezení. Nejlepší ze všeho – jsou integrovanou součástí operačního systému Windows.

Proč skripty z příkazového řádku?

Proč používat skript příkazového řádku, když existují komerční i bezplatné zálohovací programy? Skripty příkazového řádku mají řadu jedinečných výhod. Zde je několik z nich:

  • Nativní příkazy : Jaký lepší způsob zálohování dat než pomocí funkcí dostupných prostřednictvím programu, který data vytváří? Ať už se jedná o samotný operační systém prostřednictvím jednoduchého příkazu pro kopírování souboru nebo databázového příkazu k vytvoření obnovitelného binárního souboru, zdrojový program ví nejlépe, jak se zálohovat.
  • Dokonalá kontrola : Vzhledem k tomu, že skript příkazového řádku se řídí jednoduchým postupem krok za krokem, víte přesně, co se děje, a můžete snadno upravit chování.
  • Rychle : Protože vše je nativní příkaz, nic nepodléhá výkladu. Opět používáte příkazy poskytované samotným programem, takže režie je omezena na minimum.
  • Silný : Ještě jsem neviděl úlohu zálohování, kterou nelze provést pomocí skriptu z příkazového řádku... a udělal jsem pár zábavných věcí. I když možná budete muset provést nějaký výzkum a pokusy a omyly, pokud máte skutečně jedinečné potřeby, obvykle jsou vestavěné funkce a vlastnosti skriptovacího jazyka, který používáte, více než dostatečné.
  • Zdarma a flexibilní : Je zřejmé, že skript příkazového řádku nic nestojí (mimo čas na jeho vývoj), takže své skripty můžete zkopírovat na libovolný počet strojů a systémů s minimálním nebo žádným časem nebo náklady. Porovnejte to s náklady na nákup licencí pro zálohovací software na několika serverech a/nebo stolních počítačích.

Rychlý přehled skriptu zálohování

Většina lidí se nikdy nenaučila používat skriptování z příkazového řádku a je považováno za poněkud „černou magii“. Ve skutečnosti je to však docela jednoduchá věc, kterou se lze naučit. Abych demonstroval sílu příkazového řádku, poskytuji jednoduchý dávkový skript Windows, který můžete použít k zálohování důležitých dat. Tento konfigurovatelný a přizpůsobitelný skript nevyžaduje žádné znalosti (nebo ochotu učit se) dávkového skriptovacího jazyka Windows, ale pokud se rozhodnete, že se chcete dozvědět více o dávkovém skriptování Windows, zjistíte, že tento skript je dobrým výchozím místem. .

Co zálohovací skript dělá:

  1. Vytváří úplné nebo denní přírůstkové (definice viz níže) zálohy souborů a složek, které určíte v samostatném konfiguračním textovém souboru (viz níže).
    • Když je složka pojmenována, zálohuje se tato složka a všechny podsložky.
    • Když je soubor pojmenován, zálohuje se pouze tento soubor.
  2. Komprimuje (zazipuje) zálohované soubory. Po zkopírování všech souborů k zálohování jsou zkomprimovány, aby se ušetřilo místo. Aby to fungovalo, musíte mít na vašem systému nainstalován 7-Zip.
  3. Uvede datum komprimovaného souboru a přesune jej do úložiště. Poté, co jsou soubory zálohy komprimovány, výsledný archiv dostane název souboru podle aktuálního data a poté se přesune do nakonfigurovaného úložiště, jako je externí disk nebo síťové umístění.
  4. Uklidí po sobě. Po dokončení všech úloh dávkový skript vyčistí všechny dočasné soubory, které vytvořil.

Požadavky:

Windows 2000/XP/2003/Vista nebo novější

7-Zip (je zdarma)

Konfigurační soubor:

Konfigurační soubor je jednoduše textový soubor, který obsahuje soubory a složky k zálohování, zadává se jedna záloha na řádek. Tento soubor musí mít název „BackupConfig.txt“ a být umístěn ve stejné složce jako zálohovací skript. Zde je příklad souboru BackupConfig.txt (povšimněte si, že znak „#“ na prvním řádku označuje, že řádek je komentář; komentáře jsou při spuštění skriptu vždy ignorovány):

# Zadejte názvy souborů a složek, jeden na řádek.

C:Documents and SettingsJason FaulknerDesktop C:Documents and SettingsJason FaulknerMoje dokumentyDůležité soubory C:ScriptsBackupScript.bat

Výše uvedený příklad by zálohoval plochu uživatele Windows Jasona Faulknera (a všechny složky na ploše), složku nazvanou „Important Files“ uvnitř složky Moje dokumenty (a všechny složky v „Important Files“) a soubor „BackupScript.bat“ uvnitř adresář C:Scripts.

Typy záloh:

  • Úplná záloha: V záloze je zahrnuta úplná kopie všech souborů a složek (včetně podsložek).
  • Přírůstková záloha: Pokud je poskytnuta složka, budou v ní vytvořeny nebo upraveny pouze soubory dnešní datum jsou

    zálohovaný. Když je soubor poskytnut, je vždy zálohován, bez ohledu na to, kdy byl změněn.

Dávkový skript zálohování dat systému Windows

Chci zdůraznit, že tento skript je velmi základní, protože vše, co dělá, je vytváření záloh pomocí jednoduché kopie souboru. Existuje několik možností konfigurace, které můžete nastavit:

  • Umístění úložiště záloh, kde jsou uloženy výsledné komprimované soubory zálohy.
  • Den v týdnu, kdy je spuštěna plná záloha (v kterýkoli jiný den by se spouštěla ​​přírůstková záloha).
  • Umístění, kde je na vašem počítači nainstalován 7-Zip. Skript je automaticky nastaven tak, aby vypadal ve výchozím umístění.

Máte-li nějaké návrhy nebo požadavky na funkce, napište komentář níže. Opravdu bych rád napsal článek navazující na tento příspěvek, který obsahuje aktualizovaný skript založený na vstupu čtenáře. Pokud potřebujete pokyny, jak tento skript „použít“ nebo jak nastavit naplánovanou úlohu, podívejte se na odkazy pod zdrojem skriptu.

Bez dalších řečí, tady je:

Poznámka: Protože se níže uvozovky nezobrazují správně (a v důsledku toho mohou zkazit skript), vložil jsem pod skript odkaz ve formátu prostého textu, který můžete použít k získání přesného zdroje ke kopírování.

@ECHO OFF REM BackupScript REM verze 1.01, aktualizováno: 2008-05-21 REM Jason Faulkner (články[-at-]132solutions.com) REM Provádí úplné nebo přírůstkové zálohy složek a souborů nakonfigurovaných uživatelem. Použití REM--- REM > BackupScript SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION REM ---Možnosti konfigurace--- REM Umístění složky, kam chcete uložit výsledný archiv záloh. REM Tato složka musí existovat. Na konec nevkládejte '', bude přidána automaticky. REM Můžete zadat místní cestu, písmeno externího disku (např. F:) nebo síťové umístění (např. \serverbackups) SET BackupStorage=C:Backup REM Který den v týdnu chcete provést úplnou zálohu? REM Zadejte jedno z následujících: Ne, Po, Út, St, Čt, Pá, So, * REM V kterýkoli jiný den v týdnu, než je ten uvedený níže, se spustí přírůstková záloha. REM Pokud zadáte '*', pokaždé se spustí úplná záloha. SET FullBackupDay=* REM Umístění, kde je na vašem počítači nainstalován 7-Zip. REM Výchozí nastavení je ve složce '7-Zip' v adresáři Program Files. SET InstallLocationOf7Zip=%ProgramFiles%7-Zip REM +--------------------------------------- --------------------------------+ REM | Níže zde nic neměňte, pokud nevíte, co děláte. | REM +------------------------------------------------ -----------------------+ REM Proměnné použití. SET exe7Zip=%InstallLocationOf7Zip%7z.exe SET dirTempBackup=%TEMP%backup SET filBackupConfig=BackupConfig.txt REM Validation. POKUD NEEXISTUJE %filBackupConfig% ( ECHO Nebyl nalezen žádný konfigurační soubor, chybí: %filBackupConfig% GOTO End ) POKUD NEEXISTUJE "%exe7Zip%" ( ECHO 7-Zip není nainstalován v umístění: %dir7Zip% ECHO Aktualizujte prosím adresář, kde Je nainstalován 7-Zip GOTO Konec ) Proměnné zálohy REM. FOR /f "tokens=1,2,3,4 delims=/ " %%a IN ('datum /t') UDĚLEJTE ( SET DayOfWeek=%%a SET NowDate=%%d-%%b-%%c SET FileDate=%%b-%%c-%%d ) IF {%FullBackupDay%}=={*} SET FullBackupDay=%DayOfWeek% IF /i {%FullBackupDay%}=={%DayOfWeek%} (SET txtBackup =Úplná SET swXCopy=/e ) ELSE ( SET txtBackup=Přírůstková SET swXCopy=/s /d:%FileDate% ) ECHO Začíná kopírování souborů. POKUD NEEXISTUJE "%dirTempBackup%" MKDIR "%dirTempBackup%" PRO /f "skip=1 tokens=*" %%A IN (%filBackupConfig%) UDĚLEJTE ( SET Current=%%~A, POKUD NEEXISTUJE "!Aktuální! " ( ECHO ERROR! Nenalezeno: !Aktuální! ) ELSE ( ECHO Kopírování: !Aktuální! SET Destination=%dirTempBackup%!Current:~0,1!%%~pnxA REM Určete, zda je záznam soubor nebo adresář. POKUD "%%~xA"=="" ( Adresář REM. XCOPY "!Aktuální!" "!Cíl!" /v /c /i /g /h /q /r /y %swXCopy% ) ELSE ( Soubor REM. COPY /v /y "!Aktuální!" "!Cíl!" ) ) ) ECHO Kopírování souborů je dokončeno. ECHO. SET BackupFileDestination=%BackupStorage%Backup_%FileDate%_%txtBackup%.zip REM Pokud záložní soubor existuje, odstraňte jej ve prospěch nového souboru. POKUD EXISTUJE "%BackupFileDestination%" DEL /f /q "%BackupFileDestination%" ECHO Komprese zálohovaných souborů. (Nové okno) REM Komprimujte soubory pomocí 7-Zip v procesu s nižší prioritou. START "Komprimování zálohy. NEZAVÍREJTE" /belownormal /čekejte "%exe7Zip%" a -tzip -r -mx5 "%BackupFileDestination%" "%dirTempBackup%" ECHO Komprimace zálohovaných souborů je dokončena. ECHO. ECHO Úklid. POKUD EXISTUJE "%dirTempBackup%" RMDIR /s /q "%dirTempBackup%" ECHO. :Konec ECHO Dokončeno. ECHO. ENDLOCAL

Zdroj prostého textu je k dispozici zde: záloha

Pokud potřebujete pomoc se zahájením implementace tohoto skriptu, zde je několik odkazů, které vám pomohou:

  • Jak vytvořit dávkový soubor
  • Jak vytvořit plánovanou úlohu systému Windows

Toto je stejný skript, který používám k každodennímu zálohování počítače (samozřejmě s několika úpravami), takže vím, že funguje velmi dobře. Doufám, že vám to bude užitečné.

Užívat si!