Ich habe eine Syslog-Datei mit diesem Format.Python Regex Parsing von Syslog
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: Application Version: 8.44.0
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: Run on system: host
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: Running as user: SYSTEM
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: User has admin rights: yes
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: Start Time: 2016-03-07 13:44:55
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: IP Address: 10.10.10.10
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: CPU Count: 1
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: System Type: Server
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: System Uptime: 18.10 days
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: MODULE: InitHead MESSAGE: => Reading signature and hash files ...
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Notice: MODULE: Init MESSAGE: file-type-signatures.cfg initialized with 80 values.
Mar 7 13:44:56 host.domain.example.net/10.10.10.10 Application: Notice: MODULE: Init MESSAGE: signatures/filename-characteristics.dat initialized with 2778 values.
Mar 7 13:44:56 host.domain.example.net/10.10.10.10 Application: Notice: MODULE: Init MESSAGE: signatures/keywords.dat initialized with 63 values.
Some logs ...
Mar 7 17:42:08 host.domain.example.net/10.10.10.10 Application: Results: MODULE: Report MESSAGE: Results: 0 Alarms, 0 Warnings, 131 Notices, 2 Errors
Mar 7 17:42:08 host.domain.example.net/10.10.10.10 Application: End: MODULE: Report MESSAGE: Begin Time: 2016-03-07 13:44:55
Mar 7 17:42:08 host.domain.example.net/10.10.10.10 Application: End: MODULE: Report MESSAGE: End Time: 2016-03-07 17:42:07
Mar 7 17:42:08 host.domain.example.net/10.10.10.10 Application: End: MODULE: Report MESSAGE: Scan took 3 hours 57 mins 11 secs
Wie die "Application Version" zu extrahieren, "Run auf System", "Startzeit", "IP-Adresse", "CPU Count", "Systemtyp" "Benutzer Admin-Rechte hat", " System Uptime "," End Time "und Anzahl der" Alarme "," Warnungen "," Hinweise "," Fehler "mit Python?
Eigentlich bin ich neu bei Python, also weiß ich wirklich nicht, wie es geht. aber ich schaffte es eine Funktion namens Finder()
def finder(fname,str):
with open(fname, "r") as hand:
for line in hand:
line = line.rstrip()
if re.search(str, line):
return line
zu machen und die Zeile mit der IP-Adresse zu bekommen ich es mit
finder("file path","MESSAGE: IP Address")
Dies druckt volle Linie nennen, ich brauche Hilfe nur zu bekommen dass ipaddress Teil, und Rest von anderen Informationen in anderen Zeilen sowie.
Wenn (wie Ihr Titel schon sagt) Sie benutzen Regex, welches Muster hast du versucht? –
Bitte teilen Sie Ihren Code und Fehler wenn überhaupt –
Eigentlich bin ich neu in Python so wirklich ich weiß nicht, wie es geht. aber ich schaffte es eine Funktion namens Finder def Finder (fname, str) zu machen: mit offenem (fname, "r") als Hand: für Linie in der Hand: line = line.rstrip() wenn re. Suche (str, Zeile): Rückleitung und die Zeile mit dem IP-Adresse bekommen ich es mit Finder nenne (Dateipfad „NACHRICHT: IP-Adresse“) Diese alle Zeilen gedruckt werden, ich brauche Hilfe um nur diesen ipaddress Teil zu bekommen, und Rest von anderen Informationen in anderen Zeilen auch. – Opera