susans
Goto Top

Logdatei-Uhrzeit auslesen und Mail an Admin

Hallo liebe Administratoren,

im Laufe meiner Tätigkeit in der IT im Krankenhaus habe ich schon oft auf dieses Forum zurückgegriffen und heute stelle ich selber eine Frage face-smile

Demnächst soll zur Überwachung der Server usw. Nagios eingesetzt werden, bis dahin werden allerdings noch einige Monate vergehen. Nun habe ich die Aufgabe bekommen, einen Ordner auf einem der Server zu überwachen: Das ist ein Schnittstellenserver zur LaborSoftware und dort landen etwa aller 20 Minuten LogDateien drin. Der Server macht in letzter Zeit oft Probleme, was wir dann oft zu spät bemerken (unterschiedliche Ursachen: Dienst läuft nicht, Verbindung unterbrochen, ...).

Es soll nun eine BatchDatei erstellt werden, die den Ordner überwacht und eine Mail an den Admin sendet, wenn die letzte LogDatei älter als 30 Minuten ist.

Wie kann man das am sinnvollsten umsetzen?
Zeitstempel vergleichen?
Ich habe nun schon viel gesucht, aber so richtig komme ich leider nicht vorwärts.

Meine Idee ist: aller 30 Minuten alle Dateien im Ordner durchsuchen - Datum/Zeit der jüngsten Datei auslesen und mit der jetzigen Uhrzeit vergleichen - entsprechende Mail/Net Send o.a. an Admin

Ich würde mich über Ideen und Vorschläge sehr freuen face-smile

Viele Grüsse
Susan

Content-Key: 247757

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

Printed on: April 19, 2024 at 22:04 o'clock

Member: colinardo
colinardo Aug 29, 2014 updated at 08:24:00 (UTC)
Goto Top
Hallo Susan,
wenn Powershell nichts ausmacht:
Pfad in Zeile 1 und Mailserver-Daten in den Zeilen 3-7 anpassen)
$logs = dir '\\Server\Share\Ordner\*.log' | sort LastWriteTime -Descending | select -First 1 | ?{$_.LastWriteTime -lt (get-date).AddMinutes(-30)}  
if($logs){
    $smtpusername = 'USERNAME'  
    $smtppassword = 'PASSWORD'  
    $smtpfrom = 'absender@domain.local'  
    $smtpto = 'empfaenger@domain.local'  
    $smtpserver = "SMTPSERVER"  
    $smtpcred = new-Object pscredential($smtpusername,(Convertto-SecureString $smtppassword -AsPlainText -Force))
    Try{
     Send-MailMessage -To $smtpto -From $smtpfrom -Subject 'Die letzte Log-Datei ist älter als 30 Minuten' -Body "Bitte überprüfen ..." -SmtpServer $smtpserver -UseSsl -Credential $smtpcred -Encoding UTF8 -ErrorAction Stop  
     write-host 'Log-Files sind nicht aktuell, E-Mail an den Admin wurde verschickt' -ForegroundColor Yellow  
    }catch{
      write-host $_
    }
}else{
  write-host "Alles i.O." -ForegroundColor Green  
}
Grüße Uwe