본문 바로가기

watch 로 간단한 시스템 모니터링

MintState 2008년 11월 20일 오후 12:42 조회 16855

watch 로 간단한 시스템 모니터링

- 작성자 : 김칠봉 <san2(at)linuxchannel.net>
- 작성일 : 2003.01.27
- 분 류 : 시스템관리(SE)
- 수 준 : 초보
- 내 용 : watch 를 이용한 간단한 시스템 모니터링
- 키워드 : watch, 모니터링

*주)
이 문서에 대한 최신 내용은 아래 URL에서 확인할 수 있습니다.

http://www.linuxchannel.net/docs/sys-watch.txt
-------------------------------------------------

watch - execute a program periodically, showing output fullscreen
(주기적으로 실행한 프로그램 결과를 전체 화면에 출력함)

[확인]

$ which watch
/usr/bin/watch
$ rpm -qf `which watch`
procps-2.0.7-3 <-- 제 시스템은 좀 오래되었군요.T.T

[사용법]

$ watch --help
Usage: watch [-dhnv] [--differences[=cumulative]]
        [--help] [--interval=<n>] [--version] <command>
  -d, --differences[=cumulative]        highlight changes between updates
                (cumulative means highlighting is cumulative)
  -h, --help                            print a summary of the options
  -n, --interval=<seconds>              seconds to wait between updates
  -v, --version                         print the version number

(번역은 안해도 되겠죠..^.^)
(기본적으로 2초 간격으로 화면 갱신합니다.)

*기본 사용예)

$ watch [-d] [-n seconds] 'command...'

가장 간단한 예부터 봅시다.

예를들어, 실시간(1초간격)으로 바뀌는 시스템의 UPTIME 값을 화면에 계속 출력해 봅시다.

$ watch -d -n 1 'cat /proc/uptime'
Every 1s: cat /proc/uptime              Sat Jan  4 14:41:18 2003

11554.91 11516.56

종료는 [Ctrl + C]입니다. (눈이 아프다면, -d 옵션을 끄는것이 좋겠군요.)

/proc/uptime 외에,
/proc/loadavg (시스템 부하량 모니터링, `top`으로 가능)
/proc/meminfo (메모리 정보)
...(기타)

이번에는 (`top`처럼) uptime과 loadavg를 한꺼번에 출력해 봅시다.

(2초간격으로)
$ watch 'cat /proc/{loadavg,uptime}'
....
(생략)

이번에는 `tail -f`와 같이 실시간으로 변화는 파일의 내용을 확인해 봅시다.

(예:/var/log/messages, root 권한 필요)
$ watch -n 1 'tail -n 20 /var/log/messages'
....
(생략)

이번에는 실시간으로 사용자를 확인해 봅시다.
(명령어: w, 2초 간격)
$ watch -d w
....
(생략)

이왕 시작했으니 시스템 프로세스도 실시간으로 확인해 봅시다.

(아파치 프로세스만 보기)
$ watch -d -n 1 'ps -ef | grep httpd | grep -v grep'
....
(생략)

이번에는 netstat 명령어를 사용해서 실시간으로 열려있는 포트(tcp/udp)와 해당 프로그램을 모니터링해 봅시다.

(시스템에 따라서 root 권한 필요함)
# watch -d -n 3 'netstat -atnup'
....
(생략)

마지막으로 앞의 여러가지 명령어를 조합해 봅시다.

- 현재 접속한 모든 사용자 출력
- httpd 프로세스 최근 20개 출력
- /var/log/messages 최근 10 줄 출력
- 추기 2초 간격
- (root 권한이 필요하겠군요)

# watch -d 'w; echo; ps -ef | grep httpd | grep -v grep | tail -n 20;
  echo; tail -n 10 /var/log/messages'

(명령어들을 ';'로 구분함, echo는 공백줄을 출력하기 위해서)

(나머지는 스스로 응용해 보세요..)
(자기만의 쉘스크립트로 작성해 놓으면 편하겠군요..물론 좀 응용해서..)

EOF

첨부파일

공유 X Facebook LINE QR 코드

댓글 0개

첫 댓글을 남겨보세요.