Cosa voglio ottenere:
Vorrei filtrare un file di registro di sistema per data, ovvero quando lo faccio:
$ cat /var/log/syslog | grep -i "error\|warn\|kernel"
stampa linee come queste negli ultimi tre giorni diciamo:
(...)
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
Come grep (selezionare o filtrare):
- per data?
- per data + ora?
Cosa ho provato:
$ cat /var/log/syslog | grep -i "Apr 5" | grep -i "error\|warn\|kernel"
Esso funziona come previsto sul syslog
file, ma non sul kern.log
file di, ad esempio, che solo i rendimenti: Binary file (standard input) matches
. E quando ho tail
questo particolare file posso vedere lo stesso formato di data di inizio rispetto al syslog
file.
Domanda:
Come ottenere lo stesso su altri registri come il kern.log
file?
Inoltre, è possibile filtrare:
- per intervallo di date?
- per data + intervallo di ore?
Suggerimento: se possibile, con "comandi facili da ricordare".