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
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
Viele Grüsse
Susan
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
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
Viele Grüsse
Susan
Please also mark the comments that contributed to the solution of the article
Content-Key: 247757
Url: https://administrator.de/contentid/247757
Printed on: April 24, 2024 at 15:04 o'clock
1 Comment
Hallo Susan,
wenn Powershell nichts ausmacht:
Pfad in Zeile 1 und Mailserver-Daten in den Zeilen 3-7 anpassen)
Grüße Uwe
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
}