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, 2865 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
Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(2)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

LAN, WAN, Wireless
gelöst Statische Routen mit ISC-DHCP Server für Android Devices (22)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Exchange Server
gelöst Migration Exchange 2007 zu 2013 - Public Folder teilweise weg (16)

Frage von Andy1987 zum Thema Exchange Server ...