สิ่งที่ฉันต้องการบรรลุ:
ฉันต้องการกรองไฟล์บันทึกระบบตามวันที่เช่นเมื่อฉัน:
$ 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
วิธี 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
ไฟล์?
นอกจากนี้เป็นไปได้ที่จะกรอง:
- ตามช่วงวันที่?
- ตามช่วงวันที่ + ชั่วโมง?
คำแนะนำ:ถ้าเป็นไปได้ด้วย "คำสั่งที่จำง่าย"