날짜 또는 날짜 범위로 시스템 로그 파일 필터링


12

내가 달성하고 싶은 것 :

날짜별로 시스템 로그 파일을 필터링하고 싶습니다.

$ 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

잡는 방법 (선택 또는 필터링) :

  • 날짜별로?
  • 날짜 + 시간?

내가 시도한 것 :

$ 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파일 과 같은 다른 로그에서 동일한 결과를 얻는 방법은 무엇입니까?

또한 다음을 필터링 할 수 있습니다.

  • 기간별로?
  • 날짜 + 시간 범위별로?

힌트 : 가능하면 "기억하기 쉬운 명령"을 사용하십시오.

답변:


14

systemd를 사용하면 다음과 같이 세밀한 필터링을 쉽게 허용하는 journalctl이 있습니다.

sudo journalctl --since "2 days ago"   
sudo journalctl --since "2019-03-10" --until "2019-03-11 03:00"
sudo journalctl -b # last boot 
sudo journalctl -k # kernel messages
sudo journalctl -p er # by priority (emerg|alert|crit|err|warning|info|debug)
sudo journalctl -u sshd # by unit 
sudo journalctl _UID=1000 # by user id

예를 결합 할 수 있습니다!


5
자 이제 이것은 너무 멋지다!
George Udosen

2
종종 sudo필요 하지 않습니다 (특히 사용자가 adm"주"사용자 인 그룹의 구성원 인 경우 ).
PerlDuck

4

일반적으로 kern.log는 텍스트 파일입니다. 그러나 때로는 시스템에 충돌이 발생하여 시스템이 파일을 제대로 닫을 수없는 경우 일부 바이너리 데이터 가 포함되는 경우가 있습니다 . 그런 다음 텍스트 ^@^@^@^@^@^@^@^@^@등이 포함 된 줄을 볼 수 있습니다 .

경우 grep통지는 입력되는 이진 , 보통 추가 처리 및 인쇄를 중지 ... binary file ...하는 대신. 그러나이 동작을 바꾸는 스위치가 있습니다. 로부터 :

[...]
File and Directory Selection
   -a, --text
          Process a binary file as if it were text; 
          this is equivalent to the --binary-files=text option.
[...]

다음을 시도 할 수 있습니다.

$ grep -a -i "Apr  5" /var/log/kern.log  | grep -i "error\|warn\|kernel"

(그러나 실제로 journalctl다른 대답으로 주어진 솔루션을 선호합니다 .)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.