Hallöle,
ich stelle Euch hier mal eine ältere Version eines Backupscriptes zur Verfügung, welches unter MS Server 2003 lauffähig sein sollte (habe ich lange nicht mehr gebraucht, sollte aber funktionieren)
Mit einigen Anpassungen sollte es sich leicht an Eure Umgebung anpassen lassen.
Ziel dieses Scriptes ist/war es, eine Sicherung eines bzw. mehrerer Server auf einer zentralen Netzfreigabe abzulegen.
Die Vorgabe war, erst eine (oder mehrere) vollständige Sicherung(en) lokal abzulegen und diese so entstandene Sicherungsdatei anschließend auf eine Netzfreigabe zu kopieren.
Ihr könnt dieses Script gerne benutzen, jedoch gebe ich keine Garantie, dass es in Eurer Umgebung fehlerfrei funktioniert! Über dies hinaus sollte es sich jedoch einfach an Windows XP anpassen lassen.
Eine Anpassung an Windows 7/8 oder Server 2008 wird etwas schwieriger, da es in diesen Versionen kein NT-Backup mehr gibt.
Grüße
Jody
@echo off
REM
REM #########################################################################
REM
REM Backup-Script für Windows 2003 Server
REM
REM Erstellt
REM
REM Dieses Script sichert den lokalen Systemstatus oder erstellt ein Fullbackup.
REM Die Sicherung wird im Verzeichnis D:\backup\%COMPUTERNAME% erstellt und
REM in Anschluss auf eine zentrale Netzwerkfreigabe kopiert.
REM
REM Nun wird die ANZAHL der vorhandenen Sicherung im lokalen Pfad geprüft
REM und es werden jeweils die ältesten Dateien gelöscht wobei
REM mindestens %ANZAHL% Sicherungen erhalten bleiben.
REM
REM #########################################################################
REM
REM VORBEREITUNG
REM Ab hier werden die Variablen definiert und mit Werten belegt
REM
REM Welche Art von Backup soll durchgeführt werden
REM Wenn FULLBACK auf TRUE gesetzt wird, wird ein Vollbackup gemacht, sonst
REM wird nur der Systemstate gesichert!
REM
If "%1"=="" goto SYNTAX
IF "%1"=="FULL" (
SET FULLBACKUP=TRUE
SET TYPE=FULL
GOTO WEITER
)
IF "%1" == "SYS" (
SET FULLBACKUP=FALSE
SET TYPE=SYS
GOTO WEITER
)
GOTO SYNTAX
REM
REM
:WEITER
REM Hier wird das aktuelle Datum ermittelt und
REM als %BACKUPDATE% in die Reihenfolge JJJJMMTT gebracht:
SET DATUM=%Date%
SET TAG=%Datum:~0,2%
SET MON=%Datum:~3,2%
SET JAHR=%Datum:~6,4%
SET BACKUPDATE=%JAHR%%MON%%TAG%
REM
REM hier wird der lokale Backup-Pfad definiert:
SET ORDNER=D:\backup
REM
REM hier wird der REMOTE-HOST definiert bei funktionierendem DNS
REM hier den Hostnamen eintragen oder wahlweise die IP:
REM Soll keine Remotesicherung erfolgen HOST auf OFF setzen:
REM SET HOST=OFF
SET HOST=192.168.178.25
REM
REM hier wird die Freigabe definiert in welche die Sicherung abgelegt werden sollen
SET SHARE=backup$
REM
REM Hier werden HOST & SHARE zusammengefasst:
SET REMOTE=%HOST%\%SHARE%
REM
REM hier wird die ANZAHL der lokalen Tagessicherungen festgelegt:
SET ANZAHL=5
REM
REM
REM Prüfen und Sicherstellen das die lokale Ausgangslage den definierten Zustand hat bzw. erhält!
IF NOT EXIST %ORDNER% md %ORDNER%
REM Hier wird die Ausgangslage auf NULL gesetzt:
IF EXIST %ORDNER%\FULLBACKUP.bks DEL %ORDNER%\FULLBACKUP.bks
IF EXIST %ORDNER%\BACKUP.bks DEL %ORDNER%\BACKUP.bks
REM
REM Hier wird eine temporäre Datei FULLBACKUP.bks erstellt:
REM Wenn ein Fullbackup gemacht werden soll wird der Teil
REM in den Klammern abgearbeitet...
IF %FULLBACKUP%==TRUE (
REM
REM Laufwerk C: Soll gesichert werden:
echo C:\>%ORDNER%\FULLBACKUP.bks
REM
REM aber nicht die "Dokumente und Einstellungen"
echo C:\Dokumente und Einstellungen\ /Exclude>>%ORDNER%\FULLBACKUP.bks
REM
REM Laufwerk D: Soll auch gesichert werden:
echo D:\>>%ORDNER%\FULLBACKUP.bks
REM
REM aber nicht der Ordner in dem das Backup abgelegt werden soll!
echo %ORDNER% /Exclude>>%ORDNER%\FULLBACKUP.bks
REM
REM Ach ja, der Systemstatus sollte auch nicht vergessen werden:
echo SystemState>>%ORDNER%\FULLBACKUP.bks
REM
REM Die Sprungmarke stellt sicher, dass nicht zusätzlich eine Systemstatussicherung gemacht wird
Goto START
)
REM
REM Wenn kein Fullbackup gemacht werden soll gehts hier weiter
echo SystemState>%ORDNER%\FULLBACKUP.bks
REM
REM #########################################################################
REM Ab hier gehts Los:
REM
:START
REM
REM Zunächst wird die temporäre Datei in UNICODE konvertiert, damit sie
REM von NT-Backup gelesen werden kann:
CMD /U /C Type %ORDNER%\FULLBACKUP.bks >> %ORDNER%\BACKUP.bks
IF EXIST %ORDNER%\FULLBACKUP.bks DEL %ORDNER%\FULLBACKUP.bks
REM
REM hier wird der Dateiname inkl. Pfad für die Sicherungsdatei definiert:
SET Filename=%ORDNER%\%COMPUTERNAME%_%TYPE%\%BACKUPDATE%_%COMPUTERNAME%_%TYPE%.bkf
REM
REM #########################################################################
REM
REM LOKALE SICHERUNG:
REM
REM Hier wird geprüft ob in %ORDNER% ein Unterverzeichnis mit dem Namen des Computers
REM existiert und falls nicht wird es angelegt
if not exist "%ORDNER%\%COMPUTERNAME%_%TYPE%" md "%ORDNER%\%COMPUTERNAME%_%TYPE%"
REM
REM Nun erfolgt die eigentliche Sicherung abhängig von der Einstellung FULLBACKUP:
C:\WINDOWS\system32\ntbackup.exe backup "@%ORDNER%\BACKUP.bks" /a /d "%COMPUTERNAME% - %BACKUPDATE%" /v:yes /r:no /rs:no /hc:off /m normal /j "%COMPUTERNAME%_Backup" /l:s /f "%Filename%"
REM
REM #########################################################################
REM Wenn HOST auf OFF gesetzt wurde, wird die Sicherung nicht auf ein
REM zentrales Verzeichnis geschoben
REM
IF %HOST%==OFF GOTO CLEANUP
REM KOPIEREN DER SICHERUNGSDATEI AUF ZENTRALEN HOST:
IF NOT EXIST \\%REMOTE% GOTO FEHLER
REM
REM Nun wird geprüft ob es auf dem Remotesystem ein Unterverzeichnis für den Computer
REM in der entsprechenden Freigaben gibt und falls nicht wird es angelegt
if not exist "\\%REMOTE%\%COMPUTERNAME%_%TYPE%" md \\%REMOTE%\%COMPUTERNAME%_%TYPE%
REM
REM Jetzt wird die soeben erstellte Sicherung auf den Sicherungsserver kopiert
if not exist "\\%REMOTE%\%COMPUTERNAME%_%TYPE%\%BACKUPDATE%_%COMPUTERNAME%_%TYPE%.bkf" Copy /Y /V %Filename% \\%REMOTE%\%COMPUTERNAME%_%TYPE%\%BACKUPDATE%_%COMPUTERNAME%_%TYPE%.bkf
REM
for /f "skip=%ANZAHL% delims=" %%i in ('dir /b /a-d /o-d "\\%REMOTE%\%COMPUTERNAME%_%TYPE%"') do del "\\%REMOTE%\%COMPUTERNAME%_%TYPE%\%%i"
REM #########################################################################
REM
REM AUFRÄUMEN:
:CLEANUP
REM Damit das lokale Backupverzeichnis nicht voll läuft, wird vor Ende des Scripts
REM geprüft, dass nicht mehr als ANZAHL alter Backup-Dateien vorhanden sind.
REM Sollten mehr Dateien vorhanden sein, werden die jeweils ältesten Dateien gelöscht
for /f "skip=%ANZAHL% delims=" %%i in ('dir /b /a-d /o-d "%ORDNER%\%COMPUTERNAME%_%TYPE%"') do del "%ORDNER%\%COMPUTERNAME%_%TYPE%\%%i"
REM
REM Nun werden noch die erzeugten Dateien gelöscht:
IF EXIST %ORDNER%\BACKUP.bks DEL %ORDNER%\BACKUP.bks
IF EXIST %ORDNER%\FULLBACKUP.bks DEL %ORDNER%\FULLBACKUP.bks
REM
REM
GOTO ENDE
:FEHLER
ECHO Es ist ein Fehler aufgetreten!
ECHO der remote Host ist nicht verfügbar:
ECHO Bitte Netzwerkverbindung oder DNS prüfen!
PAUSE
GOTO ENDE
:SYNTAX
ECHO Die Syntax dieses Befehls lautet:
ECHO.
ECHO Backup.cmd [FULL/SYS]
ECHO [FULL] = Es wird ein VOLLBACKUP ausgeführt
ECHO [SYS] = Es wird nur der Systemstatus gesichert
ECHO.
ECHO BEISPIEL: backup.cmd SYS
Pause
GOTO ENDE
:ENDE
pause
Alles anzeigen
PS.: es sollte der deutsche Zeichensatz aktiviert sein, andernfalls könnte die Datumsumstellung etwas "patzen"