私が達成したいこと:
日付でシステムログファイルをフィルタリングしたい、つまり、次のようにしたい:
$ cat /var/log/syslog | grep -i "error\|warn\|kernel"
最後の3日間、次のような行を出力します。
(...)
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
grep(選択、またはフィルター)の方法:
- 日付で?
- 日付+時間で?
私が試したもの:
$ 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
ファイルのような他のログで同じことを達成する方法は?
さらに、以下をフィルタリングできますか?
- 日付範囲で?
- 日付+時間の範囲で?
ヒント:可能であれば、「覚えやすいコマンド」を使用してください。