Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Abrage bestimmter Begriffe einer Logdatei und Emailversand

Frage Entwicklung Batch & Shell

Mitglied: Neo2k

Neo2k (Level 1) - Jetzt verbinden

18.02.2010 um 18:06 Uhr, 2857 Aufrufe, 3 Kommentare

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:

01.
18:42:46 C: -> G:\backup\snapshot\C091227full.sna 
02.
18:42:47 Start backup of C: -> g:\backup\snapshot\C091227full.sna 
03.
18:42:48 free space info: total 99998MB, 40384MB free, 51129 must be saved 
04.
18:42:52 C: -> g:\backup\snapshot\C091227full.sna 
05.
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.
Mitglied: bastla
18.02.2010 um 19:44 Uhr
Hallo Neo2k!

Die Batchdatei könnte etwa so aussehen:
01.
@echo off & setlocal 
02.
set "Erg=" 
03.
for /f "tokens=2" %%i in (D:\Logdatei.txt) do set "Erg=%%i" 
04.
if /i "%Erg%"=="Success" echo blat ... Erfolgsmeldung & goto :eof 
05.
if /i "%Erg%"=="Failed" echo blat ... Fehlermeldung & goto :eof 
06.
echo blat ... Undefiniertes Ergebnis
Anstelle der jeweiligen "echo blat ..."-Ausgaben wäre der Aufruf des Mailprogrammes (zB "blat" - Beispiele findest Du hier im Forum) einzusetzen ...

Grüße
bastla
Bitte warten ..
Mitglied: Neo2k
19.02.2010 um 10:37 Uhr
Hallo Bastla,

vielen Dank für deinen schnellen Lösungsvorschlag, Ich habe mir Blat mal angeschaut. Das ist ja ein ziemlich geniales Tool.

Ich habe mir auch schon eine CMD gebastelt, mit der die Logdatei von Snapshot an mich geschickt wird.
Jetzt peile ich nicht ganz, wie ich deine Zeilen mit denen von Blat kombiniere.

Hier mal der Aufruf von Blat:

01.
@echo off & setlocal  
02.
set "Erg="  
03.
for /f "tokens=2" %%i in (x:\logs\sys_mo_full.log) do set "Erg=%%i" 
04.
if /i "%Erg%"=="Failed" Blat -install SERVER.domäne.local monitoring@emaildomain.de 
05.
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 
Hm, das sieht aber nicht sehr logisch aus,oder? Schade, dass ich mich da nie mit beschäftigt habe. Kann man ja schon richtig nette Sachen mit machen.

Wo habe ich den Fehler gemacht?



EDIT: Jetzt habe ich festgestellt, dass es auch passieren kann, dass die Logdatei nicht vollständig abgeschlossen wird. So kann es passieren, dass bei Sicherungsende, oder Sicherungsabbruch weder "failed" noch "success" steht. (Durch Absturz des Programms oder des Hosts).
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.

Gruß,
neo2k
Bitte warten ..
Mitglied: bastla
19.02.2010 um 13:11 Uhr
Hallo Neo2k!

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:
01.
if /i "%Erg%"=="Failed" ( 
02.
    Blat -install SERVER.domäne.local monitoring@emaildomain.de 
03.
    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 " 
04.
    goto :eof 
05.
)
Auf die gleiche Weise kannst Du auch auf "success" reagieren - durch das "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 mit
if /i "%Erg%"=="Success" goto :eof
den Batch beenden.

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...