리눅스

Total 331
Today 0
profile_image
윤진한
08-02-04 09:58 0개 8회
일반문서
WATCH 명령어 사용법
리눅스에는 watch라는 명령어가 있다.

이 명령어는 이름에서 풍기는 뉘앙스 처럼 특정 명령의 실행값을 보는것이다.

즉 모니터링을 위한 명령어로 쓰인다.

하지만 이것을 사용해서 모니터링을 하는 사람은 그리 많지 않다.

그 이유는 일반적으로 리소스를 모니터링을 할수 있는 명령어들은 이미 watch 처럼 일정시간 간격으로

정보를 출력해주는 옵션을 가지고 있기 때문이다.

하지만 이 watch라는 명령은 리눅스에서 제공하는 단일 명령이 아닌 쉘 상에서 여러 명령을 조합해서

사용할때 비로소 진가를 발휘하게 되는 것이다.


그럼 watch라는 것은 어떤것인지 간단히 살펴보도록 하자.

man watch 을 쳐보도록 하자.

watch - execute a program periodically, showing output fullscreen

"즉 정기적으로 프로그램 실행 결과를 풀스크린 모드로 보여준다." 라고 되어있다.

watch의 manpage내용은 그리 어렵지 않은 내용이므로 한번 읽어보고 example을 실행해보면, 금방

사용법을 알수 있을 것이다.


자 그럼 이 명령이 실전에서는 어떻게 쓰이는지 알아보도록 하자.

web 80번 포트로 접속하는 사용자들의 수를 지속적으로 확인하고 싶을때는 어떻게 할까?

netstat -nat | grep EST | grep :80 | wc -l

위와 같은 명령으로 현재 80번 포트에 ESTABLISHED 되어있는 정보만을 잡아서 카운터를 해보면 알수있다.

(물론 중복된 사용자들을 제거하기 위해서 sort -u or uniq라는 명령을 추가로 사용할수도 있다.)

자 그럼 위의 명령 조합을 통해서 명령을 통해서 현재 80번 포트에 접속해 있는 사용자를 알았다.

이제 지속적으로 1초 간격으로 접속자의 현황을 알려고 하면 어떻게 하면 할까?

물론 쉘 스크립트를 이용해서 지속적으로 동작시키는 방법도 있겠지만, 지금은 watch 명령을 알아보는

것이므로 watch를 이용해 보자.

다음과 같은 명령을 이용해서 1초마다 계속 새로운 데이타를 확인할수 있고, 변경된 데이터에 대해서는

진한 글자로 알려주게 된다.

watch -n 1 -d "netstat -nat | grep :80 | grep EST | wc -l"

-n은 시간은 말한다. (단위는 초:default는 2초) -> 즉 1초 간격이라는 의미

-d 변경된 정보는 진한 글자로 알려준다.

"...." -> 하나의 명령이 아니라(혹은 한 명령에 옵션이 많거나) 여러 명령을 동시에 사용하게 된다면,
다음과 같이 따옴표로 묶어줘야 한다. (혹은 '..' 으로)


반드시 직접 실행해 보기 바란다.!!


전체 화면에 현재 접속자 화면이 출력될 것이다. 만약 data에 변동이 있다면 진한색으로 표시될것이고..

다음과 같은 명령을 수행해 볼수도 있다.

watch -n 1 -d "ps -aef"

watch -n 1 -d "netstat -nat | grep :80"

watch "lsof -i:80"


watch에 대해서 간단하게 알아보았다.

watch란 명령은 잘 알려지지 않았으면서도 쓰임새가 많은 명령 이므로 여러가지 명령의 실행 결과를 모니터

링 하는데 활용해 보기 바란다

댓글목록

등록된 댓글이 없습니다.