tokenring
Goto Top

Backuplog automatisiert auswerten

Schönen guten Morgen,

ich benötige eine Lösung für folgendes Szenario:

Als Standard-Backup-Software verwenden wir Drivesnaphshot. Funktioniert auch sehr gut und schnell.
Was uns noch fehlt wäre, dass das Backuplog automatisiert ausgewertet werden.

Bedeutet: Drivesnapshot erstellt Backuplog in Text-Form. Tool schaut sich das Backuplog an, wenn Backup-Success ist alles OK, falls Backup failed drinnen steht wäre ein Benachrichtigun in eMail-Form schön.

Gibts da was vorgefertigt in der Richtung ?

Vielen Dank und viele Grüße.

Content-ID: 150983

Url: https://administrator.de/contentid/150983

Ausgedruckt am: 23.11.2024 um 00:11 Uhr

djfflow
djfflow 14.09.2010 um 09:59:58 Uhr
Goto Top
ich würd einfach ein Skript schreiben, dass nach "Backup Failed" in der Textdatei sucht und dann ne Mail sendet.
90857
90857 14.09.2010 um 10:59:02 Uhr
Goto Top
Ich kenne mich mit Drivesnapshot jetzt nicht aus, aber wenn doch sowieso eine .txt Datei erstellt wird, dann bastel dir doch ein Script, dass dir den Inhalt mit dem Tool blat.exe als E-Mail zusendet. Da sind zwar dann auch die erfolgreichen drin, aber es funktioniert bei mir wunderbar.
Florian.Sauber
Florian.Sauber 15.09.2010 um 04:26:50 Uhr
Goto Top
Er kanns ja vorher über Find in einer Batch Datei auslesen lassen
Irgendwas in der Pseudo-Art...
@echo off
find /N "fail" backup.log > backupfailure.log  
if not %ERRORLEVEL%==0 (
   echo keine Fehler gefunden
) 
else (
   blat backupfailure.log -to admin@domain.de  -subject "Fehler bei Backup"  
   echo Email wird versendet
)
kann man ja noch mehrstufig machen und abfragen ob find richtig ausgeführt wurde (sollte man sogar) Mit %date% und %time% angereichert weiss man auch noch wann was war....

echo Beendet!
TokenRing
TokenRing 15.09.2010 um 14:39:51 Uhr
Goto Top
Jo, das Script und Blat als SMTP-Versand schauen gut aus. Erstmal vielen Dank.
TokenRing
TokenRing 15.09.2010 um 16:10:58 Uhr
Goto Top
So Script würde an sich laufen und blat auch, aber beim ausführen bekomme ich immer die Fehlermeldung das der befehl "else" enterweder nicht vorhanden ist oder falsch geschrieben ist.
hier mein script: wo ist der fehler.

@echo off

find /N "fail" c:\testlog.txt

if not %ERRORLEVEL%==0 (

blat c:\testlog.txt -to testemfaenger@test.de -server smtp.1und1.de -f testsender@online.de -u testsender@online.de -pw test -s "Kein Fehler gefunden"
echo Kein Fehler gefunden

)
else (


blat c:\testlog.txt -to testempfaenger@test.de -server smtp.1und1.de -f testsender@online.de -u testsender@online.de -pw test -s "Fehler im Backup"

echo Email wird versendet
)
90857
90857 15.09.2010 um 16:39:02 Uhr
Goto Top
Versuch doch das else durch if %ERRORLEVEL%==0 zu ersetzen.
TokenRing
TokenRing 15.09.2010 um 16:53:30 Uhr
Goto Top
das Script wird zwar jetzt ohne Fehler abgearbeitet aber er schickt nun zwei mails raus: nämlich einmal eine mit "kein Fehler" und einmal mit "Fehler im Backup"
90857
90857 15.09.2010 um 16:56:36 Uhr
Goto Top
Dann hält der beide if-Anweisungen für zutreffend. Da musst du jetzt den Punkt herausfinden, der dafür verantwortlich ist. Sorry, aber im Scripting bin ich nicht der Beste.
Florian.Sauber
Florian.Sauber 15.09.2010 um 20:34:18 Uhr
Goto Top
Zitat von @TokenRing:
So Script würde an sich laufen und blat auch, aber beim ausführen bekomme ich immer die Fehlermeldung das der befehl
"else" enterweder nicht vorhanden ist oder falsch geschrieben ist.
hier mein script: wo ist der fehler.
War mein Fehler! Wollte den Code übersichtlich halten. ABer der Zeilenumbruch vor else muss raus
Du kannst es ja so machen.
@echo off
find /N "fail" backup.log   
if %ERRORLEVEL% neq 0 (
echo keine Fehler gefunden
) else (
blat blabla
echo Fehler gefunden
)
Warum Deine 2fache IF-Abfrage nicht funktioniert können wir erst sagen, wenn wir den genauen Code kennen....

Aber Vorsicht, ich bilde mir ein, dass es unter DOS so war, dass find auch einen Wert ungleich 0 (>1) ausgab, wenn find zu Fehlern geführt hat. Habe aber gerade keinen Plan, wie das aktuell ist. Also nur weil irgenwas ausgibt, dass kein Fehler vorhanden ist, heisst es nicht unbedingt, dass alles "fehlerfrei" lief;) Immer mal wieder überprüfen
TokenRing
TokenRing 16.09.2010 um 14:05:39 Uhr
Goto Top
so, vielen Dank für eure Unterstüzung. Das "else" wird leider immer noch nicht akzeptiert.
Hab mir jetzt so weitergeholfen indem ich zwei batches erstellt habe.

Einmal wo auf ein erfolgreiches backup und einmal wo auf ein gescheitertes backup gesucht wird.
Funktioniert nun auch soweit.

Wie gesagt euch nochmal danke für die hilfe und geduld.

Viele Grüße.
Florian.Sauber
Florian.Sauber 16.09.2010 um 15:11:11 Uhr
Goto Top
Ist ja gut, dass am Ende so läuft, dass Du zufrieden bist.
Die Frage bleibt, warum bei Dir Fehler mit else auftauchten...
TokenRing
TokenRing 20.09.2010 um 11:28:04 Uhr
Goto Top
Hallo nochmal.

So die Scripte arbeiten und alles funktioniert erstmal so wie es soll.

Jetzt nur noch zwei kleine Frage zum "find"-Kommando.

1) Sucht der Befehl /find "success" wirklich nur das Wort "Success" oder gilt ein successfully auch als postive match ?

2) Kann ich den Befehl /find auch noch etwas anpassen. Also sprich: Suche nur erste Zeile oder letzte Zeile oder Zeile xy ?

Vielen Dank und viele Grüße.
Florian.Sauber
Florian.Sauber 20.09.2010, aktualisiert am 18.10.2012 um 18:43:33 Uhr
Goto Top
Hallo TokenRing

So die Scripte arbeiten und alles funktioniert erstmal so wie es soll.
Das ist doch schonmal was...

1) Sucht der Befehl /find "success" wirklich nur das Wort "Success" oder gilt ein successfully auch als
postive match ?
Das hättest Du ja leicht selbst rausfinden können... Einfach mal Deine Datei anpassen und schauen, was passiert!
Ich geh mal davon aus, dass Du das halt mal eben nicht konntest, da Du im Urlaub bist / Nicht an Deinem Rechner und es desshalb nicht testen konntest. An dem fremden Rechner geht natürlich auch kein "find /?" ...
find sucht eine Zeichenfolge, auch String genannt, so dass "hier" sowohl in "demhier" als auch in "hier und dort" gefunden wird. Mit dem Parameter /I auch in "Hier erst recht"
2) Kann ich den Befehl /find auch noch etwas anpassen. Also sprich: Suche nur erste Zeile oder letzte Zeile oder Zeile xy ?
Nur über find geht das nicht. Auch das "erweiterte" findstr, das die meisten gegenüber find wohl präferieren ist das durch einen speziellen Parmeter nicht möglich (siehe findstr /?). Weiterhelfen wird Dir in diesem Zusammenhang aber ein for-Schleife.
Da auf Deinem Rechner die mit findstr bestimmte Zeile auslesen mehr zu dem Thema finden...

Grüße Flo