Sicherung NTBackup mit Auftrags-Mail

Beschreibung: Das nachfolgende Skript stellt eine perfekte Sicherung mit NTBackup da. Das BKS-File muß mit NTBackup erstellt werden! Die Namen der Sicherung und des Datenträerppols zum Auswurf des Bandes müssen angepaßt werden! Alle Daten, die angepaßt werden müssen/können sind kursiv und fettgekennzeichnet Nach der Sicherung wird eine Auftrags-Mail mit dem Logfile versendet. ACHTUNG: Damit das Skript läuft wird das Tool mail-as-batch.exe benötigt. Dieses ist unter den Tools zu finden oder unter folgender Adresse herunterladbar:

@echo off


REM --- neue Inventur start /wait rsm refresh /LF"Hewlett Packard DAT72 drive"
REM --- schauen, was da ist start /wait rsm view /tphysical_media
REM --- Datensicherung starten

start /wait C:\WINDOWS\system32\ntbackup.exe backup "@C:\Dokumente und Einstellungen\ren-admin\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data\Voll_BAMSDC010.bks" /n "%date% Vollsicherung BAMSDC010" /d "%date% Vollsicherung BAMSDC010" /v:yes /r:no /rs:no /hc:on /m normal /j "Voll_BAMSDC010" /l:s /p "4mm DDS" /UM


REM --- Band auswerfen
REM Auswurf des Bandes, Medianame muss genau dem Name des Bandes entsprechen
rsm eject /LF"Hewlett Packard DAT72 drive"

REM --- Sicherungslog als Mail versenden
setlocal ENABLEDELAYEDEXPANSION set file=N set user=tfreitag if {%1} NEQ {} set user=%1 set user=%user:"=% set folder=C:\Dokumente und Einstellungen\ren-admin\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data
for /f "Tokens=*" %%a in ('dir "%folder%\backup*.log" /b /O-D')
do if "!file!" EQU "N"
set file=%%a rem start "!file!" "%SystemRoot%\notepad.exe" "%folder%\!file!"
c:\mail-as-batch.exe -smtp 192.168.100.80 -from Backup@mr-daten.de -to rbamberg@mr-daten.de -s Sicherung BAMSDC010 -body "%folder%\!file!" endlocal exit /b 0

Sicherung mit NTBackup PERFEKT

Die Jobs für den automatischen Backup:
Will man sich nicht mit der Medienverwaltung beschäftigen oder mehrere Backup's mit Append auf das selbe Band schreiben, kommt man recht schnell an die Grenzen der GUI-Oberfläche von "Sicherung" und "geplante Task" ( schönes Denglisch ! ).

Microsoft KB Q239892:
Dieser Artikel enthält zwar eine Übersicht, was mit den Kommandozeilen-Optionen von Backup und Medienverwaltung möglich ist, für den praktischen Einsatz ist er aber erstmal unbrauchbar.

Die folgenden Beispiele basieren auf den Vorlagen von Jerold Schulmann's Tip 2265:

Für den Start eines Jobs benötigt man die Zeile:
start /wait rsm refresh /LF"HP C1533A SCSI Sequential Device"
hiermit wird ein Update des Remote Storage Managers (rsm) durchgeführt
die Laufwerksbezeichnung muß natürlich immer dem aktuellen Laufwerk entsprechen
(HP C1533A... oder SONY SDT7000 ...)

Damit das aktuelle Band verwendet wird (einige Laufwerke melden keinen Bandwechsel) sollte man lieber nochmal nachschauen, was wirklich drin liegt mit:
start /wait rsm view /tphysical_media

Bei einem unbeaufsichtigtem Backup muß jedem Band ein eindeutiger Name automatisch vergeben werden. Der Name wird auch benötigt, um das Band später mit eject wieder auswerfen zu können. Die folgenden Zeilen erstellen das gleiche Format wie die GUI der deutschen W2k-Version ("Medium am xx.yy.2001 um 11:11 erstellt"):
for /f "Tokens=1-2 Delims= " %%i in ('date /t') do set dt=Medium am %%j
for /f "Tokens=1" %%i in ('time /t') do set tm= um %%i erstellt
set dtt=%dt%%tm%

(wichtig: die for..do Zeilen müssen in einer Zeile stehen, kein Umbruch erlaubt !)

Schon können wir dem Job die eigentliche Backup-Aufgabe übergeben:
start /wait ntbackup backup "@c:\backup\Normal-Anw-Exch.bks" /V:yes /R:no /RS:no /HC:on /M normal /J "Montag" /L:s /P "4mm DDS" /UM /N "%dtt%"
(auch hier muß der Zeilenumbruch wieder entfernt werden)

"@c:\backup\Normal-Anw-Exch.bks" muß mit der GUI erstellt werden, hier wird definiert, was in dem Job gesichert werden soll

Dies war z.B. der Job für einen vollen Datenbackup am Montag. Der Job für einen incrementellen Backup als Append auf das selbe Band sieht so aus:
REM neue Inventur
start /wait rsm refresh /LF"HP C1533A SCSI Sequential Device"
REM schauen, was da ist
start /wait rsm view /tphysical_media
REM der Backup gesteuert über .bks
start /wait ntbackup backup "@c:\backup\Increm-Anw-Exch.bks" /A /V:yes /R:no /RS:no /HC:on /M incremental /J "Di-Do" /L:s /P "4mm DDS" /UM
(in der Hilfe zu NTBackup.exe steht ausdrücklich, die Switche /A /P /UM nicht gemeinsam zu verwenden - nur funktionierts dann NICHT !)

Ein Freitags-Job, der auf dem Band von vorn beginnt, wieder einen kompletten Backup erstellt und danach das Band auswirft, könnte so aussehen:
REM neue Inventur
start /wait rsm refresh /LF"HP C1533A SCSI Sequential Device"
REM schauen, was da ist
start /wait rsm view /tphysical_media
REM der Backup gesteuert über .bks
start /wait ntbackup backup "@c:\backup\Normal-komplett.bks" /V:yes /R:no /RS:no /HC:on /M normal /J "Freitag" /L:s /P "4mm DDS" /UM
REM Bandname formatieren, diese Zeile gilt nur für den Standard-Namen im GUI-Format
for /f "Tokens=1-8 Delims= " %%i in ('rsm view /tphysical_media /b') do set medianame=%%i %%j %%k %%l %%m %%n %%o %%p
sleep 15
REM Auswurf des Bandes, Medianame muss genau dem Name des Bandes entsprechen
rsm eject /LF"HP C1533A SCSI Sequential Device" /astart

(für eject über die Medienverwaltung (rsm) muß mit "rsm view" der aktuelle Bandname ermittelt werden. Anders ist kein Bandauswurf möglich. NTBackup.exe von W2k kann nicht mehr direkt auf ein Bandlaufwerk zugreifen, dazwischen hängt immer die Medienverwaltung.)

NTBackup Log-Auswertungüber Batchdatei

Das Batchfile zeigt das letzte LOG-File von NT Backup an. Damit läßt sich leicht der letzte Stand der Sicherung abfragen!

@echo off
setlocal ENABLEDELAYEDEXPANSION
set file=N
set user=%UserProfile%
if {%1} NEQ {} set user=%1
set user=%user:"=%
set folder=%user%\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data
for /f "Tokens=*" %%a in ('dir "%folder%\backup*.log" /b /O-D') do if "!file!" EQU "N" set file=%%a
start "!file!" "%SystemRoot%\notepad.exe" "%folder%\!file!"
endlocal
exit /b 0


Hier nochmal das ganze bei dem das LOG-File in ein Verzeichnis kopiert wird:

@echo off
setlocal ENABLEDELAYEDEXPANSION
set file=N
set user=tfreitag
if {%1} NEQ {} set user=%1
set user=%user:"=%
set folder=C:\Dokumente und Einstellungen\ren-admin\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data
for /f "Tokens=*" %%a in ('dir "%folder%\backup*.log" /b /O-D') do if "!file!" EQU "N" set file=%%a
rem start "!file!" "%SystemRoot%\notepad.exe" "%folder%\!file!"
copy "%folder%\!file!" C:\Freigaben\Technik\Sicherung\%date%.txt
endlocal
exit /b 0


Hinweis:
Bei der Zeile "set folder" muß der Pfad angepaßt werden. Hier ist der Pfad für den Benutzer, unter dem das Backup ausgeführt wird, einzutragen.
Bitte auch die Sprache und den daraus resultierenden Pfad beachten!
“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)