Abrage bestimmter Begriffe einer Logdatei und Emailversand
Hallo Zusammen,
da Skripting nicht so mein Fall ist, hoffe ich nun, dass jemand von euch eine Idee hat, wie ich mein Vorhaben am besten umsetzen kann.
Snapshot.exe erzeugt nach jedem Backup eine Log-Datei, in der Sicherungsdatails, sowie der Status der Sicherung angegeben wird.
Das Backupprogramm schliesst die Logdatei.txt bei erfolgreicher Sicherung mit einem "success" und beim Fehlschlagen mit "failed" ab.
Die Logdatei in verkürzter Version sieht so aus:
Diese Logdatei würde ich nun gerne überwachen. Meine Idee ist nun, dass ich nach der Sicherung eine Batchdatei via Scheduler aufrufen lasse, in der die Logdatei ausgelesen wird und mir anschließend bei "success" oder "failed" eine Email schickt.
Frage 1: wie baue ich die Batchdatei auf?
Frage 2: womit versende ich die Email? Ich möchte unabhängig von installierten Mailprogrammen, etc. verschicken können. Sowas wie Sendmail, oder?
Frage 3: Gibt es vielleicht einen besseren Lösungsweg? Ich habe allerdings nur dieses Snapshot zum Sichern, welches die logdatei.log erstellt.
Für Anregungen schon mal vielen Dank im Vorraus.
da Skripting nicht so mein Fall ist, hoffe ich nun, dass jemand von euch eine Idee hat, wie ich mein Vorhaben am besten umsetzen kann.
Snapshot.exe erzeugt nach jedem Backup eine Log-Datei, in der Sicherungsdatails, sowie der Status der Sicherung angegeben wird.
Das Backupprogramm schliesst die Logdatei.txt bei erfolgreicher Sicherung mit einem "success" und beim Fehlschlagen mit "failed" ab.
Die Logdatei in verkürzter Version sieht so aus:
18:42:46 C: -> G:\backup\snapshot\C091227full.sna
18:42:47 Start backup of C: -> g:\backup\snapshot\C091227full.sna
18:42:48 free space info: total 99998MB, 40384MB free, 51129 must be saved
18:42:52 C: -> g:\backup\snapshot\C091227full.sna
19:18:30 Success
Diese Logdatei würde ich nun gerne überwachen. Meine Idee ist nun, dass ich nach der Sicherung eine Batchdatei via Scheduler aufrufen lasse, in der die Logdatei ausgelesen wird und mir anschließend bei "success" oder "failed" eine Email schickt.
Frage 1: wie baue ich die Batchdatei auf?
Frage 2: womit versende ich die Email? Ich möchte unabhängig von installierten Mailprogrammen, etc. verschicken können. Sowas wie Sendmail, oder?
Frage 3: Gibt es vielleicht einen besseren Lösungsweg? Ich habe allerdings nur dieses Snapshot zum Sichern, welches die logdatei.log erstellt.
Für Anregungen schon mal vielen Dank im Vorraus.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 136319
Url: https://administrator.de/contentid/136319
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo Neo2k!
Die Batchdatei könnte etwa so aussehen:
Anstelle der jeweiligen "echo blat ..."-Ausgaben wäre der Aufruf des Mailprogrammes (zB "blat" - Beispiele findest Du hier im Forum) einzusetzen ...
Grüße
bastla
Die Batchdatei könnte etwa so aussehen:
@echo off & setlocal
set "Erg="
for /f "tokens=2" %%i in (D:\Logdatei.txt) do set "Erg=%%i"
if /i "%Erg%"=="Success" echo blat ... Erfolgsmeldung & goto :eof
if /i "%Erg%"=="Failed" echo blat ... Fehlermeldung & goto :eof
echo blat ... Undefiniertes Ergebnis
Grüße
bastla
Hallo Neo2k!
Wenn Du mehrere Zeilen (in Deinem Ansatz die Zeilen 4 und 5) abhängig von einem "
Auf die gleiche Weise kannst Du auch auf "success" reagieren - durch das "
den Batch beenden.
Grüße
bastla
Wenn Du mehrere Zeilen (in Deinem Ansatz die Zeilen 4 und 5) abhängig von einem "
if
" ausführen willst, kannst Du das im einfachsten Fall so lösen:if /i "%Erg%"=="Failed" (
Blat -install SERVER.domäne.local monitoring@emaildomain.de
Blat "C:\blat\body.txt" -to empfänger@emaildomain.de -server mail.emaildomain.de -u monitoring@emaildomain.de -pw passwort - -debug -timestamp -log blatSMTPlog.txt -subject "Snaphot Vollsicherung - System (C) - Montags fehlgeschlagen "
goto :eof
)
goto :eof
" wird der Batch beendet, sodass die Zeile 6 meines Beispiels oben nur erreicht werden kann, wenn weder "success" noch "failed" als 2. Wort in der letzten Zeile gefunden wurden ...In diesem Fall wäre es vielleicht sinniger, wenn man in dem Skript überprüft, ob "success" vorhanden ist.Und falls nicht, dass dann erst die Email verschickt wird.
Wenn Du im Erfolgsfall keine Mail senden willst, könntest Du einfach mitif /i "%Erg%"=="Success" goto :eof
Grüße
bastla