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".
sudo
erforderlich (insbesondere wenn der Benutzer Mitglied deradm
Gruppe ist, die normalerweise der "Hauptbenutzer" ist).Im Allgemeinen ist das
kern.log
eine Textdatei. Manchmal kommt es jedoch vor, dass einige Binärdaten enthalten sind, insbesondere wenn das System zuvor abgestürzt ist und das System die Datei nicht ordnungsgemäß schließen konnte. Sie können dann Zeilen bemerken, die Text wie^@^@^@^@^@^@^@^@^@
und so enthalten.Wenn festgestellt
grep
wird , dass die Eingabe binär ist , stoppt sie normalerweise die weitere Verarbeitung und druckt... binary file ...
stattdessen. Aber es gibt einen Schalter, um dieses Verhalten zu ändern. Aus der Manpage :Sie können Folgendes versuchen:
(Aber ich würde eigentlich die
journalctl
Lösung bevorzugen, die in einer anderen Antwort angegeben ist.)quelle