DeuAq.com >> Leben >  >> Elektronik

Windows-Stapelskript zum Sichern von Daten

Computerbenutzer, die mit fortschrittlichen Mac- und Windows-Computern aufgewachsen sind, wissen es vielleicht nicht, aber vor langer Zeit wurden alle PCs über eine Befehlszeilenschnittstelle gesteuert. Ja, dieses klobige Befehlsfeld auf Ihrem Windows-Computer war früher buchstäblich die einzige Möglichkeit, mit der die meisten Menschen jemals mit einem Computer interagierten. Befehlszeilenschnittstellen stützten sich stark auf kleine Programme namens „Skripte“, bei denen es sich um Sammlungen von Betriebssystembefehlen handelte, die zur Ausführung allgemeiner Aufgaben verwendet wurden.

Windows-Stapelskript zum Sichern von Daten

Obwohl die grafischen Benutzeroberflächen der heutigen PCs um Lichtjahre ausgefeilter und benutzerfreundlicher sind als die alten Befehlszeilen, gibt es immer noch Verwendungsmöglichkeiten für die ältere Methode zur Steuerung Ihres Computers. Eine der häufigsten und am besten geeigneten Anwendungen für ein Befehlszeilenskript ist die Datensicherung. Befehlszeilenskripte können so automatisiert werden, dass sie jederzeit ohne menschliche Interaktion ausgeführt werden können, und haben nur wenige Einschränkungen. Das Beste von allem – sie sind ein integrierter Bestandteil des Windows-Betriebssystems.

Windows-Stapelskript zum Sichern von Daten

Warum Befehlszeilenskripte?

Warum ein Befehlszeilenskript verwenden, wenn es sowohl kommerzielle als auch kostenlose Sicherungsprogramme gibt? Nun, Befehlszeilenskripte haben eine Reihe einzigartiger Vorteile. Hier sind einige davon:

Native Befehle :Gibt es einen besseren Weg, um Daten zu sichern, als die Funktionen zu nutzen, die durch das Programm zur Verfügung gestellt werden, das die Daten erstellt? Ob das Betriebssystem selbst über einen einfachen Dateikopierbefehl oder einen Datenbankbefehl eine wiederherstellbare Binärdatei erzeugt, das Quellprogramm weiß am besten, wie es sich selbst sichern kann. Ultimative Kontrolle :Da ein Befehlszeilenskript einem einfachen Schritt-für-Schritt-Verfahren folgt, wissen Sie genau, was passiert, und können das Verhalten leicht ändern. Schnell :Da alles ein nativer Befehl ist, unterliegt nichts der Interpretation. Auch hier verwenden Sie Befehle, die vom Programm selbst bereitgestellt werden, sodass der Aufwand auf ein Minimum reduziert wird. Leistungsstark :Ich habe noch keine Sicherungsaufgabe gesehen, die nicht über ein Befehlszeilenskript ausgeführt werden kann … und ich habe einige verrückte Sachen gemacht. Auch wenn Sie möglicherweise etwas recherchieren und ausprobieren müssen, wenn Sie wirklich einzigartige Anforderungen haben, sind die integrierten Funktionen und Merkmale der von Ihnen verwendeten Skriptsprache in der Regel mehr als ausreichend. Kostenlos und flexibel :Offensichtlich kostet ein Befehlszeilenskript nichts (außer der Zeit, um es zu entwickeln), sodass Sie Ihre Skripts mit wenig bis gar keinem Zeit- oder Kostenaufwand auf eine beliebige Anzahl von Computern und Systemen kopieren können. Vergleichen Sie dies mit den Kosten für den Kauf von Lizenzen für Sicherungssoftware auf mehreren Servern und/oder Desktop-Rechnern.

Ein kurzer Überblick über das Backup-Batch-Skript

Die meisten Leute haben nie gelernt, Befehlszeilen-Scripting zu verwenden, und es wird als eine Art „schwarze Kunst“ angesehen. Es ist jedoch eigentlich eine ziemlich einfache Sache zu lernen. Um die Leistungsfähigkeit der Befehlszeile zu demonstrieren, stelle ich ein einfaches Windows-Batch-Skript bereit, mit dem Sie Ihre wichtigen Daten sichern können. Dieses konfigurierbare und anpassbare Skript erfordert keine Kenntnisse (oder Lernbereitschaft) der Windows-Batch-Skriptsprache, aber wenn Sie sich entscheiden, mehr über Windows-Batch-Skripting zu erfahren, ist dieses Skript ein guter Ausgangspunkt .

Was das Backup-Skript macht:

Erstellt vollständige oder tägliche inkrementelle (Definition siehe unten) Backups von Dateien und Ordnern, die Sie in einer separaten Konfigurationstextdatei angeben (siehe unten). Wenn ein Ordner benannt wird, werden dieser Ordner und alle Unterordner gesichert. Wenn eine Datei benannt wird, wird nur diese Datei gesichert. Komprimiert (zippt) die gesicherten Dateien. Nachdem alle zu sichernden Dateien kopiert wurden, werden sie komprimiert, um Platz zu sparen. 7-Zip muss auf Ihrem System installiert sein, damit dies funktioniert. Datiert die komprimierte Datei und verschiebt sie an einen Speicherort. Nachdem die Sicherungsdateien komprimiert wurden, erhält das resultierende Archiv einen Dateinamen gemäß dem aktuellen Datum und wird dann an einen konfigurierten Speicherort verschoben, z. B. ein externes Laufwerk oder einen Netzwerkspeicherort. Räumt nach sich selbst auf. Nachdem alle Aufgaben abgeschlossen sind, bereinigt das Batch-Skript alle temporären Dateien, die es erstellt hat.

Anforderungen: Windows 2000/XP/2003/Vista oder neuer
7-Zip (kostenlos)

Konfigurationsdatei: Die Konfigurationsdatei ist einfach eine Textdatei, die zu sichernde Dateien und Ordner enthält, wobei ein Sicherungselement pro Zeile eingegeben wird. Diese Datei muss „BackupConfig.txt“ heißen und sich im selben Ordner wie das Backup-Skript befinden. Hier ist ein Beispiel einer BackupConfig.txt-Datei (beachten Sie, dass das Zeichen „#“ in der ersten Zeile anzeigt, dass es sich bei der Zeile um einen Kommentar handelt; Kommentare werden bei der Ausführung des Skripts immer ignoriert):

# Enter file and folder names, one per line.
C:Documents and SettingsJason FaulknerDesktop C:Documents and SettingsJason FaulknerMy DocumentsImportant Files C:ScriptsBackupScript.bat

Das obige Beispiel würde den Desktop des Windows-Benutzers Jason Faulkner (und alle Ordner auf dem Desktop), den Ordner „Wichtige Dateien“ in „Eigene Dateien“ (und alle Ordner in „Wichtige Dateien“) und die darin enthaltene Datei „BackupScript.bat“ sichern das C:Scripts-Verzeichnis.

Arten von Sicherungen:

Vollständige Sicherung:Eine vollständige Kopie aller Dateien und Ordner (einschließlich Unterordner) wird in die Sicherung eingeschlossen. Inkrementelles Backup:Wenn ein Ordner bereitgestellt wird, nur Dateien, die am aktuellen Datum erstellt oder geändert wurden sind
Gesichert. Wenn eine Datei bereitgestellt wird, wird sie immer gesichert, unabhängig davon, wann sie geändert wurde.

Das Datensicherungs-Windows-Stapelskript

Ich möchte betonen, dass dieses Skript sehr einfach ist, da es lediglich Backups erstellt, indem es eine einfache Dateikopie verwendet. Es gibt einige Konfigurationsoptionen, die Sie einstellen können:

Der Sicherungsspeicherort, an dem die resultierenden komprimierten Sicherungsdateien gespeichert werden. Der Wochentag, an dem die vollständige Sicherung ausgeführt wird (an jedem anderen Tag würde eine inkrementelle Sicherung ausgeführt). Ort, an dem 7-Zip auf Ihrem Computer installiert ist. Das Skript wird automatisch so eingestellt, dass es am Standardspeicherort sucht.

Wenn Sie Vorschläge oder Feature-Wünsche haben, kommentieren Sie bitte unten. Ich würde wirklich gerne einen Folgeartikel zu diesem Beitrag schreiben, der ein aktualisiertes Skript enthält, das auf Lesereingaben basiert. Wenn Sie Anweisungen zur „Verwendung“ dieses Skripts oder zum Einrichten einer geplanten Aufgabe benötigen, werfen Sie einen Blick auf die Links unter der Skriptquelle.

Ohne Umschweife, hier ist es:

Hinweis :Da die Anführungszeichen unten nicht korrekt angezeigt werden (und infolgedessen das Skript durcheinander bringen können), habe ich einen einfachen Textlink unter dem Skript eingefügt, mit dem Sie eine genaue Quelle zum Kopieren erhalten können.

@ECHO OFF

REM BackupScript
REM Version 1.01, Updated: 2008-05-21
REM By Jason Faulkner (articles[-at-]132solutions.com)

REM Performs full or incremental backups of folders and files configured by the user.

REM Usage---
REM > BackupScript

SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

REM ---Configuration Options---

REM Folder location where you want to store the resulting backup archive.
REM This folder must exist. Do not put a '' on the end, this will be added automatically.
REM You can enter a local path, an external drive letter (ex. F:) or a network location (ex. \serverbackups)
SET BackupStorage=C:Backup

REM Which day of the week do you want to perform a full backup on?
REM Enter one of the following: Sun, Mon, Tue, Wed, Thu, Fri, Sat, *
REM Any day of the week other than the one specified below will run an incremental backup.
REM If you enter '*', a full backup will be run every time.
SET FullBackupDay=*

REM Location where 7-Zip is installed on your computer.
REM The default is in a folder, '7-Zip' in your Program Files directory.
SET InstallLocationOf7Zip=%ProgramFiles%7-Zip

REM +-----------------------------------------------------------------------+
REM | Do not change anything below here unless you know what you are doing. |
REM +-----------------------------------------------------------------------+

REM Usage variables.
SET exe7Zip=%InstallLocationOf7Zip%7z.exe
SET dirTempBackup=%TEMP%backup
SET filBackupConfig=BackupConfig.txt

REM Validation.
IF NOT EXIST %filBackupConfig% (
 ECHO No configuration file found, missing: %filBackupConfig%
 GOTO End
)
IF NOT EXIST "%exe7Zip%" (
 ECHO 7-Zip is not installed in the location: %dir7Zip%
 ECHO Please update the directory where 7-Zip is installed.
 GOTO End
)

REM Backup variables.
FOR /f "tokens=1,2,3,4 delims=/ " %%a IN ('date /t') DO (
 SET DayOfWeek=%%a
 SET NowDate=%%d-%%b-%%c
 SET FileDate=%%b-%%c-%%d
)

IF {%FullBackupDay%}=={*} SET FullBackupDay=%DayOfWeek%
IF /i {%FullBackupDay%}=={%DayOfWeek%} (
 SET txtBackup=Full
 SET swXCopy=/e
) ELSE (
 SET txtBackup=Incremental
 SET swXCopy=/s /d:%FileDate%
)

ECHO Starting to copy files.
IF NOT EXIST "%dirTempBackup%" MKDIR "%dirTempBackup%"
FOR /f "skip=1 tokens=*" %%A IN (%filBackupConfig%) DO (
 SET Current=%%~A
 IF NOT EXIST "!Current!" (
 ECHO ERROR! Not found: !Current!
 ) ELSE (
 ECHO Copying: !Current!
 SET Destination=%dirTempBackup%!Current:~0,1!%%~pnxA
 REM Determine if the entry is a file or directory.
 IF "%%~xA"=="" (
 REM Directory.
 XCOPY "!Current!" "!Destination!" /v /c /i /g /h /q /r /y %swXCopy%
 ) ELSE (
 REM File.
 COPY /v /y "!Current!" "!Destination!"
 )
 )
)
ECHO Done copying files.
ECHO.

SET BackupFileDestination=%BackupStorage%Backup_%FileDate%_%txtBackup%.zip

REM If the backup file exists, remove it in favor of the new file.
IF EXIST "%BackupFileDestination%" DEL /f /q "%BackupFileDestination%"

ECHO Compressing backed up files. (New window)
REM Compress files using 7-Zip in a lower priority process.
START "Compressing Backup. DO NOT CLOSE" /belownormal /wait "%exe7Zip%" a -tzip -r -mx5 "%BackupFileDestination%" "%dirTempBackup%"
ECHO Done compressing backed up files.
ECHO.

ECHO Cleaning up.
IF EXIST "%dirTempBackup%" RMDIR /s /q "%dirTempBackup%"
ECHO.

:End
ECHO Finished.
ECHO.

ENDLOCAL

Nur-Text-Quelle ist hier verfügbar:Backup

Wenn Sie Hilfe bei der Implementierung dieses Skripts benötigen, finden Sie hier einige Links, die Ihnen weiterhelfen:

So erstellen Sie eine Batch-Datei So erstellen Sie einen geplanten Windows-Task

Dies ist das gleiche Skript, das ich verwende, um meinen Computer täglich zu sichern (natürlich mit ein paar Modifikationen), daher weiß ich, dass es sehr gut funktioniert. Ich hoffe, Sie finden es nützlich.

Viel Spaß!