로그 내용을 특정날짜 이후로 전부보려면...
글쓴이: guerrillalds / 작성시간: 일, 2008/12/14 - 6:24오후
예를 들어 아래 내용대로 입력한다면
cat /var/adm/messages
로그를 본다고 할때 전체 로그말고 오늘 날짜 기준으로 12월 13일 부터 로그를 보고 싶다고 한다면 어떻게하면 좋을까요?
혹시 여기서 더 나아가 시간 단위로 설정도 가능한지요? 12월 13일 03시 부터 14일 15시까지 로그만 본다는 식으로요...
아... 궁금합니다 ㅜㅜ
Forums:
스크립트 하나 짜면
스크립트 하나 짜면 될텐데요, 제가 쓰고 있는 (GNU) awk 스크립트가 있어서 올려 드리죠.
위의 내용을 logview.awk에 저장했다고 할때 2008년도 12월 14일 01시 01분 01초 부터 2008년 12월 14일 07시 01분 01초 까지 볼려고 하면 다음 처럼 하시면 되죠.
awk -f logview.awk -vyear=2008 -vstart="12 14 01 01 01" -vend="12 14 07 01 01" /var/log/messages
gawk가 필요할꺼고 로그파일의 날짜 시간 포맷은 Dec 14 07:27:01 과 같다고 가정하고 작성된 것이므로 locale차이에 의해 포맷이 다르면 스크립트가 작동하지 않을것입니다.
답변감사합니다. 추가 궁금증..
특정날짜를 입력하지 않고 예를들어 매일 7시정도에 그 전날 로그를 본다고 할때 "date"를 이용한다던가 변수 정해서 날짜를 불러오게 한다던가하는 방식으로 사용 가능한가요?
Perl로 하면
로그의 타임스템프가 다음과 같은 형식이라고 하면
12월14일 밤11시로그부터 12월15일 오전 2시까지 로그를 보고싶다고 하면
Perl의 range operator ..를 사용하여 다음과 같이 하면 됩니다.
위에서 if 의 조건인 /^Dec 14 23/../^Dec 15 02/ 는 ..를 기준으로
앞의 정규식이 참이 되는 부분부터 뒤의 정규식이 참이 되는 부분까지를 뜻합니다.
정규식부분을 원하는 시각에 맞게(필요할경우 시분초까지) 변경하시면 더 큰범위 부터
더 작은범위까지 볼 수 있으실 겁니다.
ㄳ해요 ^^
덕분에 해결됐습니다. 감사해요~
댓글 달기