Co chcę osiągnąć:
Chciałbym filtrować systemowy plik dziennika według daty, tj. Kiedy:
$ cat /var/log/syslog | grep -i "error\|warn\|kernel"
wypisuje takie linie z ostatnich trzech dni, powiedzmy:
(...)
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
Jak grep (wybierz lub przefiltruj):
- według daty?
- według daty + godziny?
Co próbowałem:
$ cat /var/log/syslog | grep -i "Apr 5" | grep -i "error\|warn\|kernel"
To działa zgodnie z oczekiwaniami na syslog
pliku, ale nie w kern.log
pliku na przykład, który zwraca tylko: Binary file (standard input) matches
. A kiedy mam tail
ten konkretny plik, widzę ten sam format daty początkowej, co w syslog
pliku.
Pytanie:
Jak osiągnąć to samo w innych dziennikach, takich jak kern.log
plik?
Ponadto, czy można filtrować:
- według zakresu dat?
- według daty + zakresu godzin?
Wskazówka: jeśli to możliwe, za pomocą „łatwych do zapamiętania poleceń”.