Ne elde etmek istiyorum:
Bir sistem günlük dosyasını tarihe göre filtrelemek istiyorum, yani:
$ cat /var/log/syslog | grep -i "error\|warn\|kernel"
diyelim ki son üç gün boyunca böyle çizgiler yazdı:
(...)
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
Nasıl grep (seçme veya filtreleme):
- tarihe göre?
- tarihe + saate göre?
Ne denedim:
$ cat /var/log/syslog | grep -i "Apr 5" | grep -i "error\|warn\|kernel"
Sanki beklenen çalışmaları syslog
ancak üzerinde, dosyanın kern.log
örneğin dosyası, yalnızca döner: Binary file (standard input) matches
. Ve tail
bu dosyada dosyadakiyle aynı başlangıç tarihi formatını görebiliyorum syslog
.
Soru:
Aynı kern.log
dosya gibi diğer günlüklerde nasıl elde edilir ?
Ayrıca, filtrelemek mümkündür:
- tarih aralığına göre?
- tarihe göre + saat aralığına göre?
İpucu: mümkünse "hatırlaması kolay komutlar" ile.