로그 파일을 모니터링할 때 가장 유용하게 사용하는 명령이 tail이다. tail -f /var/log/messages 처럼 실행하면 messages에 새로 추가되는 로그를 실시간으로 모니터링할 수 있다. 서버를 조금이라도 다뤄본 사람은 수시로 tail -f 명령을 이용해봤을 것이다. 너무나 잘 아는 -f 옵션에 대해 얘기하려 했다면 이 글을 쓰지 않았을 것이다. ^^
-F 옵션은 사용하는 사람이 드물고 잘 알지도 못하는 경우가 많다. -F 는 -f 의 개선된 옵션으로 파일이 새롭게 생성되는 경우(rename, rotation 등)를 검사하여 파일을 새로 오픈해서 보여준다. 다음과 같은 상황일 때 유용하다.
1. 로그 파일이 로테이션될 때
error_log 파일을 tail -f error_log 명령으로 모니터링하고 있다. 이 error_log 파일은 특정 시간에 로테이션(현재까지 로그는 다른 파일명으로 변경되고 새롭게 error_log 파일이 생성)된다고 하자.
로테이션이 이뤄지게 되면, tail -f 명령을 다시 실행해서 모니터링해야 한다. 그러나 -F 옵션은 같은 파일명으로 새로 생성된 파일을 자동으로 파악하여 재실행없이 계속 모니터링할 수 있다.
2. 로그 파일이 심볼릭 링크되어 있는데, 링크되는 대상 파일이 자주 바뀔 때
다음과 같은 로그 파일이 있다.
-rw-r--r-- 1 root root 114556 Aug 27 11:58 log.20080827_AM
-rw-r--r-- 1 root root 44261 Aug 27 23:53 log.20080827_PM
-rw-r--r-- 1 root root 50704 Aug 28 11:54 log.20080828_AM
-rw-r--r-- 1 root root 100585 Aug 28 23:50 log.20080828_PM
-rw-r--r-- 1 root root 110558 Aug 29 11:44 log.20080829_AM
-rw-r--r-- 1 root root 157601 Aug 29 18:30 log.20080829_PM
lrwxr-xr-x 1 root root 8 Aug 29 12:01 log.current -> log.20080829_PM
현재 이순간에는 log.20080829_PM 파일이 log.current 이름으로 링크되어 있다. 시간이 지나면, 새로운 파일명이 생성되고 신규 파일로 링크될 것이다. 이 때 tail -F log.current 명령으로 모니터링한다면 tail 명령을 재실행하지 않아도 지속적으로 모니터링할 수 있다.
위 tail 명령의 -F옵션은 리눅스와 FreeBSD에서 모두 사용할 수 있다.
-F 옵션은 사용하는 사람이 드물고 잘 알지도 못하는 경우가 많다. -F 는 -f 의 개선된 옵션으로 파일이 새롭게 생성되는 경우(rename, rotation 등)를 검사하여 파일을 새로 오픈해서 보여준다. 다음과 같은 상황일 때 유용하다.
1. 로그 파일이 로테이션될 때
error_log 파일을 tail -f error_log 명령으로 모니터링하고 있다. 이 error_log 파일은 특정 시간에 로테이션(현재까지 로그는 다른 파일명으로 변경되고 새롭게 error_log 파일이 생성)된다고 하자.
로테이션이 이뤄지게 되면, tail -f 명령을 다시 실행해서 모니터링해야 한다. 그러나 -F 옵션은 같은 파일명으로 새로 생성된 파일을 자동으로 파악하여 재실행없이 계속 모니터링할 수 있다.
2. 로그 파일이 심볼릭 링크되어 있는데, 링크되는 대상 파일이 자주 바뀔 때
다음과 같은 로그 파일이 있다.
-rw-r--r-- 1 root root 114556 Aug 27 11:58 log.20080827_AM
-rw-r--r-- 1 root root 44261 Aug 27 23:53 log.20080827_PM
-rw-r--r-- 1 root root 50704 Aug 28 11:54 log.20080828_AM
-rw-r--r-- 1 root root 100585 Aug 28 23:50 log.20080828_PM
-rw-r--r-- 1 root root 110558 Aug 29 11:44 log.20080829_AM
-rw-r--r-- 1 root root 157601 Aug 29 18:30 log.20080829_PM
lrwxr-xr-x 1 root root 8 Aug 29 12:01 log.current -> log.20080829_PM
현재 이순간에는 log.20080829_PM 파일이 log.current 이름으로 링크되어 있다. 시간이 지나면, 새로운 파일명이 생성되고 신규 파일로 링크될 것이다. 이 때 tail -F log.current 명령으로 모니터링한다면 tail 명령을 재실행하지 않아도 지속적으로 모니터링할 수 있다.
위 tail 명령의 -F옵션은 리눅스와 FreeBSD에서 모두 사용할 수 있다.
'시스템이야기' 카테고리의 다른 글
MySQL 쿼리 실시간 모니터링 및 저장하기 (2) | 2008.11.26 |
---|---|
쉘에서 실행한 명령을 syslog로 자동 보내기 (4) | 2008.11.19 |
인터페이스명으로 eth를 사용할 필요없다. (2) | 2008.07.28 |
apache 1.3과 2.x에서 php의 SERVER_NAME변수 (2) | 2008.06.09 |
웹서버에서 gzip압축 전송을 지원하는 주요 사이트는? (4) | 2008.05.17 |