Bestimmter Begriff in einer Logdatei...

Diskutiere Bestimmter Begriff in einer Logdatei... im Programmierung Forum im Bereich Software Forum; Hallo Skript Profis :D Seit einiger Zeit suche ich nach einer Lösung, mit der ich per Email benachrichtigt werde, wenn eine Datensicherung...
morpheus36

morpheus36

WB Wiki - Team
Threadstarter
Mitglied seit
10.01.2008
Beiträge
700
Alter
49
Standort
Köln
Hallo Skript Profis :D


Seit einiger Zeit suche ich nach einer Lösung, mit der ich per Email
benachrichtigt werde, wenn eine Datensicherung fehlgeschlagen ist.

Dazu gibt es natürlich sehr komfortable Backupprogramme, die das automatisch erledigen. Allerdings steht mir in dem einen Fall leider nur ein Backupprogramm zur Verfügung, welches NUR eine Logdatei erzeugen kann, in der dann der Sicherungsvorgang, sowie eventuelle Fehler rein geschrieben werden.

Es handelt sich um das Imagetool Snapshot, welches Images von Partitionen anlegen kann.

Die Befehlszeile sieht folgendermaßen aus:

Code:
y:\snapshot\snapshot.exe C:+D:+Q:+F: y:\backup\snapshot\$diskmontag_full.sna -R -W --novss --logfile:y:\logs\mo_full.log
Der Inhalt der Logdatei sieht folgendermaßen aus:

Code:
15:14:21 Start of Snapshot 1.39 [Apr 29 2009] at 02/20/2010
15:14:21 Command line: y:\snapshot\snapshot.exe  C:+D:+Q:+F: y:\backup\snapshot\$diskmontag_full.sna -R -W --novss --logfile:y:\logs\mo_full.log 
15:14:24 Disks in backup:
15:14:24    C: -> y:\backup\snapshot\Cmontag_full.sna
15:14:24    D: -> y:\backup\snapshot\Dmontag_full.sna
15:14:24    Q: -> y:\backup\snapshot\Qmontag_full.sna
15:14:24    F: -> y:\backup\snapshot\Fmontag_full.sna
15:14:25 Start backup of C: -> y:\backup\snapshot\Cmontag_full.sna
15:14:25 free space info: total 99998MB, 37517MB free, 53996 must be saved
15:14:30 C: -> y:\backup\snapshot\Cmontag_full.sna
15:15:45 C: -> y:\backup\snapshot\Cmontag_full.sn1
15:16:49 C: -> y:\backup\snapshot\Cmontag_full.sn2
15:18:08 C: -> y:\backup\snapshot\Cmontag_full.sn3
15:19:19 C: -> y:\backup\snapshot\Cmontag_full.sn4
15:20:46 C: -> y:\backup\snapshot\Cmontag_full.sn5
15:22:10 C: -> y:\backup\snapshot\Cmontag_full.sn6
15:23:10 C: -> y:\backup\snapshot\Cmontag_full.sn7
15:23:59 C: -> y:\backup\snapshot\Cmontag_full.sn8
15:25:05 C: -> y:\backup\snapshot\Cmontag_full.sn9
15:26:26 C: -> y:\backup\snapshot\Cmontag_full.s10
15:27:34 C: -> y:\backup\snapshot\Cmontag_full.s11
15:28:43 C: -> y:\backup\snapshot\Cmontag_full.s12
15:29:37 C: -> y:\backup\snapshot\Cmontag_full.s13
15:30:45 C: -> y:\backup\snapshot\Cmontag_full.s14
15:31:53 C: -> y:\backup\snapshot\Cmontag_full.s15
15:32:47 C: -> y:\backup\snapshot\Cmontag_full.s16
15:33:59 C: -> y:\backup\snapshot\Cmontag_full.s17
15:35:27 C: -> y:\backup\snapshot\Cmontag_full.s18
15:35:44 C:     62.480MB in use - stored in     27.096MB - 21:19 minutes
15:35:44 Success
15:35:44 Start backup of D: -> y:\backup\snapshot\Dmontag_full.sna
15:35:45 free space info: total 212006MB, 178661MB free, 33345 must be saved
15:35:47 D: -> y:\backup\snapshot\Dmontag_full.sna
15:36:23 D: -> y:\backup\snapshot\Dmontag_full.sn1
15:36:55 D: -> y:\backup\snapshot\Dmontag_full.sn2
15:37:30 D: -> y:\backup\snapshot\Dmontag_full.sn3
15:38:02 D: -> y:\backup\snapshot\Dmontag_full.sn4
15:38:35 D: -> y:\backup\snapshot\Dmontag_full.sn5
15:39:08 D: -> y:\backup\snapshot\Dmontag_full.sn6
15:39:41 D: -> y:\backup\snapshot\Dmontag_full.sn7
15:40:18 D: -> y:\backup\snapshot\Dmontag_full.sn8
15:40:55 D: -> y:\backup\snapshot\Dmontag_full.sn9
15:41:26 D: -> y:\backup\snapshot\Dmontag_full.s10
15:41:59 D: -> y:\backup\snapshot\Dmontag_full.s11
15:42:35 D: -> y:\backup\snapshot\Dmontag_full.s12
15:43:09 D: -> y:\backup\snapshot\Dmontag_full.s13
15:43:43 D: -> y:\backup\snapshot\Dmontag_full.s14
15:44:27 D: -> y:\backup\snapshot\Dmontag_full.s15
15:45:08 D: -> y:\backup\snapshot\Dmontag_full.s16
15:45:52 D: -> y:\backup\snapshot\Dmontag_full.s17
15:46:04 D:     33.344MB in use - stored in     25.756MB - 10:19 minutes
15:46:04 Success
15:46:04 Start backup of Q: -> y:\backup\snapshot\Qmontag_full.sna
15:46:04 free space info: total 50006MB, 16563MB free, 33443 must be saved
15:46:06 Q: -> y:\backup\snapshot\Qmontag_full.sna
15:46:48 Q: -> y:\backup\snapshot\Qmontag_full.sn1
15:47:31 Q: -> y:\backup\snapshot\Qmontag_full.sn2
15:48:15 Q: -> y:\backup\snapshot\Qmontag_full.sn3
15:48:56 Q: -> y:\backup\snapshot\Qmontag_full.sn4
15:49:37 Q: -> y:\backup\snapshot\Qmontag_full.sn5
15:50:19 Q: -> y:\backup\snapshot\Qmontag_full.sn6
15:51:07 Q: -> y:\backup\snapshot\Qmontag_full.sn7
15:51:52 Q: -> y:\backup\snapshot\Qmontag_full.sn8
15:52:36 Q: -> y:\backup\snapshot\Qmontag_full.sn9
15:53:20 Q: -> y:\backup\snapshot\Qmontag_full.s10
15:54:03 Q: -> y:\backup\snapshot\Qmontag_full.s11
15:54:44 Q: -> y:\backup\snapshot\Qmontag_full.s12
15:55:29 Q: -> y:\backup\snapshot\Qmontag_full.s13
15:56:03 Q: -> y:\backup\snapshot\Qmontag_full.s14
15:56:12 Q:     33.443MB in use - stored in     21.133MB - 10:08 minutes
15:56:12 Success
15:56:13 Start backup of F: -> y:\backup\snapshot\Fmontag_full.sna
15:56:14 free space info: total 50006MB, 22410MB free, 27596 must be saved
15:56:16 F: -> y:\backup\snapshot\Fmontag_full.sna
15:57:49 F: -> y:\backup\snapshot\Fmontag_full.sn1
15:59:29 F: -> y:\backup\snapshot\Fmontag_full.sn2
16:00:00 F:     27.596MB in use - stored in      3.386MB - 3:48 minutes
16:00:01 Success
16:00:01 End of Snapshot 1.39 [Apr 29 2009] at 02/20/2010
Für die Emailbenachrichtigung habe ich mir das Tool "Blat" ausgesucht.

Sollzustand:
Ich möchte per Email benachrichtigt werden, wenn die Sicherung auch nur einer Partition gescheitert ist. (gesichert wird ja c,d,q,f).

Jetzt könnte man ja sagen, ok ich lasse das Logfile auf "Success" hin prüfen,
und falls das nicht vorhanden ist, soll mir die Mail geschickt werden.

Problem: Es müsste 4 mal "Success" überprüft werden.

Ein weiteres Problem ist, dass Snapshot das Logfile in unendliche Größe
anwachsen lässt. Aber das könnte ich ja mit einem einfachen Batchbefehl
unterbinden.

Ich habe schon den ein oder anderen Tipp bekommen, wie ich das am besten
umsetze, aber ich verstehe leider nicht sehr viel von Batchprogrammierung
und bleibe deswegen oft hängen und komme nicht weiter.

Bisher habe ich es mit dieser Befehlsfolge versucht:

Code:
@echo off & setlocal  
set "Erg="  
for /f "tokens=2" %%i in (y:\logs\mo_full.log) do set "Erg=%%i"
if /i "%Erg%"=="Success" goto :eof
Blat -install SERVER.domäne.local monitoring@emailadresse.de
Blat "C:\blat\body.txt" -to mich@emailadresse.de -server mail.emailadresse.de -u monitoring@emailadresse.de -pw passwort -debug -timestamp -log blatSMTPlog.txt -subject "Snaphot Imagebackup fehlgeschlagen!"
goto :eof
Wenn ich die 4. Zeile richtig verstanden habe, dann überspringt er die Ausführung von Blat , falls er das Wort "Success" in der Logdatei findet.

Ist das soweit richtig?

Leider interessiert ihn das nicht, denn er schickt mir IMMER eine Mail :blink

Dann frage ich mich, wie ich 4 mal "Success" abfragen lassen soll.

Wer kann mir da helfen?

Gruß,
Sascha
 
automatthias

automatthias

vernunftgeplagt
Mitglied seit
21.04.2006
Beiträge
9.406
Mal andersrum gefragt:
was steht in der Logdatei, wenn es NICHT erfolgreich war?
Wäre das dann nicht einfacher zu suchen?

und die eine Zeile müsste heißen
set Erg=
OHNE Anführungszeichen.
und in der for Schleife ebenso set Erg="%%i"
 
morpheus36

morpheus36

WB Wiki - Team
Threadstarter
Mitglied seit
10.01.2008
Beiträge
700
Alter
49
Standort
Köln
Mal andersrum gefragt:
was steht in der Logdatei, wenn es NICHT erfolgreich war?
Wäre das dann nicht einfacher zu suchen?
Dachte ich auch zuerst. Aber was ist, wenn Snapshot abstürzt und nicht dazu
kommt das Logfile zu Ende zu schreiben?
Dann wäre das Backup fehlgeschlagen, aber auch kein Eintrag im Logfile, dass
es fehlgeschlagen ist, weil es ja vorher abgestürzt ist.

und die eine Zeile müsste heißen
set Erg=
OHNE Anführungszeichen.
und in der for Schleife ebenso set Erg="%%i"
Danke für die Info. Könntest du mir kommentieren, was in den ersten 3
Zeilen genau passiert?

Wie schon erwähnt, ist Skriptsprache nicht gerade meine Stärke. :unsure
 
automatthias

automatthias

vernunftgeplagt
Mitglied seit
21.04.2006
Beiträge
9.406
Dachte ich auch zuerst. Aber was ist, wenn Snapshot abstürzt und nicht dazu
kommt das Logfile zu Ende zu schreiben?
Dann wäre das Backup fehlgeschlagen, aber auch kein Eintrag im Logfile, dass es fehlgeschlagen ist, weil es ja vorher abgestürzt ist.
Dann wäre die Frage, ob das snapshotprogramm irgendwelche Rückgabewerte liefert, die man direkt auswerten könnte, statt die Logdatei zu lesen. Kein Rückgabewert wäre dann, wenn das Programm abgeschmiert wäre.
Danke für die Info. Könntest du mir kommentieren, was in den ersten 3
Zeilen genau passiert?
echo off = die Befehlszeilen werden nicht auf dem Schirm angezeigt
setlocal = Variable werden nur lokal gesetzt (eigentlich eher bei verschachtelten Skripten nötig)
for... siehe Kommandozeilenhilfe. Einfach FOR /? eingeben, da gibt es ein Beispiel, das so ähnlich ist.
if /i = Vergleich, ob das Ergebnis "Success" ist.

Ach so, "goto :eof" setzt voraus, dass es auch ein Label :eof gibt. An die Stelle soll hingesprungen werden.
 
morpheus36

morpheus36

WB Wiki - Team
Threadstarter
Mitglied seit
10.01.2008
Beiträge
700
Alter
49
Standort
Köln
Dann wäre die Frage, ob das snapshotprogramm irgendwelche Rückgabewerte liefert, die man direkt auswerten könnte, statt die Logdatei zu lesen. Kein Rückgabewert wäre dann, wenn das Programm abgeschmiert wäre.
Ich habe mich mal mit dem Hersteller in Verbindung gesetzt.
Er schreibt:

gedacht ist es dass der Exitstatus von Snapshot überprüft wird, und imm Fehlerfall 'irgendwas' ausgeführt wird; in der Regel per batchfile


snapshot c: x:\image.sna ...
if errorlevel 1 (
echo Probleme beim Sichern >> Error.txt
) else (
echo %date% %time% alles prima >> erfolg.txt
)

erfolg.txt sollte dann nicht älter als 1 Tag sein


wenn "errorlevel 1" der Fehlerfall ist, müsste an dieser Stelle ja die Mail
verschickt werden. Wo muss ich da blat platzieren?
 
automatthias

automatthias

vernunftgeplagt
Mitglied seit
21.04.2006
Beiträge
9.406
Ich habe mich mal mit dem Hersteller in Verbindung gesetzt.
Professionell wäre, wenn man sich dafür nicht extra mit dem Hersteller in Verbindung setzen müsste, sondern wenn so was in der mitgelieferten Programmdokumentation steht.
Professionell wäre außerdem, wenn nicht nur im Fehlerfall einfach der Wert 1 zurück gegeben würde, sondern verschiedene Werte für verschiedene Fehlerzustände.
(musste ich mal anmerken)

wenn "errorlevel 1" der Fehlerfall ist, müsste an dieser Stelle ja die Mail
verschickt werden. Wo muss ich da blat platzieren?
Auf einer extra Zeile innerhalb der ( ) beim errorlevel 1, also z.B. hinter der Zeile "...Probleme beim Sichern..."
 
Thema:

Bestimmter Begriff in einer Logdatei...

Bestimmter Begriff in einer Logdatei... - Ähnliche Themen

  • Ich erhalte keine Emails von einem bestimmten Absender und mir wurde gesagt ich soll die Outlook.com Administratoren kontaktieren und diese Logs angeb

    Ich erhalte keine Emails von einem bestimmten Absender und mir wurde gesagt ich soll die Outlook.com Administratoren kontaktieren und diese Logs angeb: Ich kann mich nur einsetzen das das wieder geht. Bitte >Microsoft: Hallo Stefan, von lima-city: die e-mail danke für die Rückmeldung, das...
  • Freigabeoptionen | Datei- und Druckerfreigabe nur für bestimmten Ordner

    Freigabeoptionen | Datei- und Druckerfreigabe nur für bestimmten Ordner: Hallo Zusammen, erstmalig habe ich meinen PC (Profil Privat) im Netzwerk freigegeben. Netzwerkerkennung und Datei- und Druckerfreigabe ist...
  • Kein Empfang von Mails bestimmter (vor allem neuerer) Absender

    Kein Empfang von Mails bestimmter (vor allem neuerer) Absender: Hallo zusammen, seit geraumer Zeit (etwa 8 Monaten) bekomme ich von einigen Absendern keine Mails mehr auf mein Hotmail-Konto. Der Junk-Ordner...
  • GELÖST: Hilfe: Ich empfange E-Mails von einer bestimmten Adresse nicht mehr! Kontowiederherstellung!

    GELÖST: Hilfe: Ich empfange E-Mails von einer bestimmten Adresse nicht mehr! Kontowiederherstellung!: Guten Abend liebe Community, ich habe ein großes Problem beim Empfangen einer wichtigen E-Mail in meiner Hotmail-Mail. Hier der Fall: Ich...
  • Ähnliche Themen
  • Ich erhalte keine Emails von einem bestimmten Absender und mir wurde gesagt ich soll die Outlook.com Administratoren kontaktieren und diese Logs angeb

    Ich erhalte keine Emails von einem bestimmten Absender und mir wurde gesagt ich soll die Outlook.com Administratoren kontaktieren und diese Logs angeb: Ich kann mich nur einsetzen das das wieder geht. Bitte >Microsoft: Hallo Stefan, von lima-city: die e-mail danke für die Rückmeldung, das...
  • Freigabeoptionen | Datei- und Druckerfreigabe nur für bestimmten Ordner

    Freigabeoptionen | Datei- und Druckerfreigabe nur für bestimmten Ordner: Hallo Zusammen, erstmalig habe ich meinen PC (Profil Privat) im Netzwerk freigegeben. Netzwerkerkennung und Datei- und Druckerfreigabe ist...
  • Kein Empfang von Mails bestimmter (vor allem neuerer) Absender

    Kein Empfang von Mails bestimmter (vor allem neuerer) Absender: Hallo zusammen, seit geraumer Zeit (etwa 8 Monaten) bekomme ich von einigen Absendern keine Mails mehr auf mein Hotmail-Konto. Der Junk-Ordner...
  • GELÖST: Hilfe: Ich empfange E-Mails von einer bestimmten Adresse nicht mehr! Kontowiederherstellung!

    GELÖST: Hilfe: Ich empfange E-Mails von einer bestimmten Adresse nicht mehr! Kontowiederherstellung!: Guten Abend liebe Community, ich habe ein großes Problem beim Empfangen einer wichtigen E-Mail in meiner Hotmail-Mail. Hier der Fall: Ich...
  • Sucheingaben

    libFNP events

    Oben