Versucht mal auf einem Rechner (bevorzugt ein Server), auf dem das Ereignisprotokoll schon ein paar ( > 200.000 ) Einträge hat, folgenden Code auszuführen:
Code: Alles auswählen
def sysLogCheck(last):
"""
The param last is an indicator when the scripts was previously
executed. Format: 20090114092323 as int (That´s the format from
the winnt-syslog)
"""
c = wmi.WMI()
first = False
newest = last
errorIDs = (2048, #Device failed
2049, #Array disk removed
2054, #Virtual disk deleted
2056 #Virtual disk failed
)
warningIDs = (2108, #SMART warning
2110, #SMART warning degraded
2123, #Redundancy lost
1354, #Power supply detected a failure
1306 #Redundancy lost(Power supply)
)
errorLogs = []
warnLogs = []
for log in c.Win32_NTLogEvent (Logfile="System"):
if int(log.TimeWritten[0:14]) < int(last):
break
if first == False:
newest = log.TimeWritten[0:14]
first = True
if int(log.EventCode) in errorIDs:
errorLogs.append((log.Message, log.TimeWritten[0:14]))
if int(log.EventCode) in warningIDs:
warnLogs.append((log.Message, log.TimeWritten[0:14]))
Wenn ihr es jetzt schafft, den Rechner speichertechnisch NICHT völlig an die die Wand zu fahren (Speicherverbrauch bleibt zb unter 1GB), toitoi!!
Dann könnt ihr mir auch gleich Bescheid geben, wie ihr das macht (bitte ... )
Ich arbeite auf einem Win2k3 Server
python2.6
pywin32 extensions
und das tolle wmi dingens von dieser seite hier:
http://timgolden.me.uk/python/wmi.html
Ich freue mich über alle Anregungen, Vorschläge, Ideen und sonstiges!!
Bis denn
limepix