Was ich erreichen möchte:
Ich möchte eine Systemprotokolldatei nach Datum filtern, dh wenn ich Folgendes tue:
$ cat /var/log/syslog | grep -i "error\|warn\|kernel"
es druckt Zeilen wie diese für die drei letzten Tage, sagen wir:
(...)
Apr 3 06:17:38 computer_name kernel: [517239.805470] IPv6: ADDRCONF(NETDEV_CHANGE): wlp3s0: link becomes ready
(...)
Apr 4 19:34:21 computer_name kernel: [517242.523165] e1000e: enp0s25 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
(...)
Apr 5 09:00:52 computer_name kernel: [517242.523217] IPv6: ADDRCONF(NETDEV_CHANGE): enp0s25: link becomes ready
Wie grep (auswählen oder filtern):
- Nach Datum?
- nach Datum + Stunde?
Was ich versucht habe:
$ cat /var/log/syslog | grep -i "Apr 5" | grep -i "error\|warn\|kernel"
Es funktioniert wie erwartet für die syslog
Datei, aber nicht für die kern.log
Datei, die nur Folgendes zurückgibt : Binary file (standard input) matches
. Und wenn ich tail
diese bestimmte Datei habe, sehe ich das gleiche Startdatum Format wie in der syslog
Datei.
Frage:
Wie kann man dasselbe bei anderen Protokollen wie der kern.log
Datei erreichen?
Darüber hinaus ist es möglich zu filtern:
- nach Datumsbereich?
- nach Datum + Stundenbereich?
Hinweis: wenn möglich mit "leicht zu merkenden Befehlen".