Um den neuen Drive Snapshot Gesundheit Sensor nutzen zu können, müssen Sie ihr Sicherungsskript um eine Komponente erweitern, damit alle Vorgänge protokolliert werden in das Windows Event Log (Quelle "DriveSnapshotAgent").
Dadurch kann unser Sensor, die Ergebnisse abgreifen und im OCC für Sie zur Verfügung stellen.
Wichtig ist, dass hier mit der Variable %errorlevel% gearbeitet werden muss. Diese definiert nach einem Ausführen der snapshot.exe den Zustand (ob Erfolgreich oder Fehlerhaft).
Beispiel:
set LogDir=C:\Backup\Logs set error=false snapshot.exe HD1:1 U:\MeineSicherungen\disk.sna -W --novss -L0 --LogFile: %LogDir%\Current.log --CreateDir if not %errorlevel%==0 set error=true
Die EventLog Komponente die erweitert werden muss, sieht dabei wie folgt aus:
:eventlog setlocal enableextensions enabledelayedexpansion set eventtext= REM for /f "delims=" %%l in (%LogDir%\Current.log) do set eventtext=!eventtext!%%l for /f "delims=" %%l in (%LogDir%\Current.log) do set eventtext=!eventtext!%%%l___ set eventtext_cut=!eventtext:~0,5000! if %error%==false ( eventcreate /id 100 /l application /t information /so "DriveSnapshotAgent" /d "%eventtext_cut%" ) else ( eventcreate /id 100 /l application /t error /so "DriveSnapshotAgent" /d "%eventtext_cut%" ) setlocal disableextensions disabledelayedexpansion endlocal
Sie können auch gerne eine von einem Server-Eye Kunden angepasste Lösung nutzen, die Leerzeichen in der Ausgabe ermöglicht (Vielen Dank dafür).
REM Erstmal error auf falsch setzen set error=false REM Hier der snapshot Befehl Snapshot.exe +Optionen set logfile=“Speicherort Logfile z.B.: c:\snapshot.log“ REM Fehlerlevel entsprechend setzen if not %errorlevel%==0 set error=true REM Aktuelle OEM Codepage zwischenspeichern. for /f "tokens=2 delims=:" %%i in ('chcp') do set /a "oemcp = %%~ni" REM Codepage auf Windows-1252 stellen, um Umlaute korrekt übergeben zu können. >nul chcp 1252 REM Carriage Return for /f %%i in ('copy /z "%~f0" nul') do set "cr=%%i" REM Line Feed (Die zwei Leerzeilen danach sind relevant!) set lf=^ REM Verzögerte Variablenerweiterung, um den Text zusammen zu bauen und mit Zeilenumbrüchen arbeiten zu können. setlocal EnableDelayedExpansion REM Datei einlesen und einen Windows-Zeilenumbruch (CrLf) hinter jede Zeile packen. set "eventtext=" <"!logfile!" ( for /f %%i in ('type "!logfile!"^|find /c /v ""') do for /l %%j in (1 1 %%i) do ( set "line=" &set /p "line=" set "eventtext=!eventtext!!line!!cr!!lf!" ) ) if %error%==false ( eventcreate /id 100 /l application /t information /so "DriveSnapshotAgent" /d "!eventtext:~0,-2!" ) else ( eventcreate /id 100 /l application /t error /so "DriveSnapshotAgent" /d "!eventtext:~0,-2!" ) setlocal disableextensions disabledelayedexpansion endlocal REM Zurück zur OEM Codepage. >nul chcp %oemcp% EXIT
Dazu wird das geschriebene Log in einem EventLog Eintrag protokolliert.
Anbei findet sich noch ein komplettes Beispiel-Skript, welches für eine Sicherung verwendet werden kann. Vielen Dank hier an unseren Kunden "CSH Computerservice-Haibach", der uns dieses Skript zur Verfügung stellte und auf seinem Blog viele weitere interessante Punkte zu Drive-Snapshot (und auch Server-Eye) aufzeigt. Hier gehts zu Andys Blog