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, 2866 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 ..
Ähnliche Inhalte
Microsoft Office
gelöst Excel 2010 Makro Ausgabe in bestimmter Tabelle ausgeben (6)

Frage von dressa zum Thema Microsoft Office ...

KVM
KVM Starter Logdatei erstellen

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema KVM ...

E-Mail
gelöst Automatischer Emailversand aus einem bestimmten Ordner (6)

Frage von GoTTn1 zum Thema E-Mail ...

Visual Studio
gelöst C-Sharp WPF ListView Select nur bei bestimmter Spalte (2 Fragen in einer) (3)

Frage von mayho33 zum Thema Visual Studio ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
POS Hardware und alternativen zu Raid 1? (21)

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

Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (18)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

Exchange Server
Exchange Postfach leeren - nicht löschen (11)

Frage von AndreasOC zum Thema Exchange Server ...