Чого я хочу досягти:
Я хотів би відфільтрувати файл системного журналу за датою, тобто коли я це роблю:
$ cat /var/log/syslog | grep -i "error\|warn\|kernel"
він друкує такі лінії за три останні дні, скажімо:
(...)
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
Як зібрати (вибрати або відфільтрувати):
- за датою?
- за датою + година?
Що я спробував:
$ cat /var/log/syslog | grep -i "Apr 5" | grep -i "error\|warn\|kernel"
Він працює , як очікується , на syslog
файл, але не на kern.log
файл, наприклад, який повертає тільки: Binary file (standard input) matches
. І коли я саме tail
цей файл, я бачу той самий формат дати початку, як у syslog
файлі.
Питання:
Як досягти того ж у інших журналах, як kern.log
файл?
Крім того, чи можна фільтрувати:
- за діапазоном дат?
- за датою + годинний діапазон?
Підказка: якщо можливо, за допомогою "легко запам'ятовуються команд".