Ce que je veux réaliser:
Je voudrais filtrer un fichier journal système par date, c'est-à-dire quand je le fais:
$ cat /var/log/syslog | grep -i "error\|warn\|kernel"
il imprime des lignes comme celles-ci pour les trois derniers jours disons:
(...)
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
Comment grep (sélectionner ou filtrer):
- par date?
- par date + heure?
Ce que j'ai essayé:
$ cat /var/log/syslog | grep -i "Apr 5" | grep -i "error\|warn\|kernel"
Il fonctionne comme prévu sur le syslog
dossier, mais pas sur le kern.log
fichier par exemple, qui ne les rendements: Binary file (standard input) matches
. Et quand je tail
ce fichier particulier, je peux voir le même format de date de début que dans le syslog
fichier.
Question:
Comment obtenir la même chose sur d'autres journaux comme le kern.log
fichier?
De plus, est-il possible de filtrer:
- par plage de dates?
- par date + plage horaire?
Astuce: si possible, avec des "commandes faciles à retenir".