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%
EXITDazu 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