Linux

[리눅스] watch 명령어 완벽 가이드 사용법(명령어 주기적으로 실행)

인생아 2024. 10. 25. 15:23
반응형

리눅스에서 watch 명령어는 특정 명령을 주기적으로 실행하여 그 실행 결과를 실시간으로 모니터링할 수 있는 도구입니다. 시스템 관리자들이 자주 사용하는 유용한 명령어로, 파일의 변화를 추적하거나 네트워크 상태, 디스크 사용량 등을 주기적으로 확인할 때 사용됩니다. watch 명령어는 사용자가 지정한 간격마다 주어진 명령어를 실행하며, 기본 주기는 2초입니다.

watch 명령어의 주요 기능

  • 명령어 실행 결과를 주기적으로 갱신: 명령어를 일정 시간 간격으로 반복 실행하여 실시간으로 변화를 관찰할 수 있습니다.
  • 출력 결과를 하이라이트: 변화가 있는 부분을 하이라이트하여 쉽게 구분할 수 있습니다.
  • 인터벌 조정 가능: 원하는 시간 간격으로 명령어 실행 주기를 설정할 수 있습니다.
  • 시스템 모니터링: 프로세스 상태, 네트워크 연결 상태, 디스크 용량 등을 실시간으로 모니터링하는 데 사용됩니다.

watch 명령어 기본 사용법

watch [옵션] <실행할 명령어>

기본 예시: ls 명령어 결과를 2초마다 갱신하여 확인

watch ls

이 명령어는 현재 디렉토리의 파일 목록을 2초마다 자동으로 갱신하여 출력합니다. 실시간으로 파일이 추가되거나 삭제되는 것을 확인할 수 있습니다.

실행 예시:

user@linux:~/workspace$ watch ls
Every 2.0s: ls                                                                 user: Fri Oct 20 10:21:43 2024

file1.txt
file2.txt
file3.txt

파일 목록이 변경되면 watch 명령어는 그 변경 사항을 2초마다 갱신해 보여줍니다.

주기 설정 및 하이라이트 사용

-n 옵션을 사용하면 주기를 설정할 수 있습니다. 예를 들어, 5초 간격으로 명령어를 실행하려면 다음과 같이 사용할 수 있습니다.

watch -n 5 df -h

이 명령어는 5초마다 디스크 용량 정보를 갱신하여 출력합니다.

실행 예시:

user@linux:~/workspace$ watch -n 5 df -h
Every 5.0s: df -h                                                             user: Fri Oct 20 10:23:17 2024

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   20G   28G  42% /
/dev/sda2       100G   80G   20G  80% /data

-d 옵션을 사용하면 변경된 부분을 하이라이트하여 쉽게 식별할 수 있습니다.

watch -d free -m

이 명령어는 메모리 사용량을 모니터링하며, 변경된 부분을 하이라이트하여 표시합니다.

실행 예시:

user@linux:~/workspace$ watch -d free -m
Every 2.0s: free -m                                                            user: Fri Oct 20 10:24:31 2024

              total        used        free      shared  buff/cache   available
Mem:           7982        2045        1546         156        4390        5441
Swap:          2047          0        2047

이처럼 watch 명령어는 메모리 사용량 변화나 디스크 사용량 변화 등 시스템 리소스의 변동을 실시간으로 모니터링할 수 있는 강력한 도구입니다.

반응형

watch 명령어로 프로세스 모니터링

watch 명령어는 ps 명령어와 함께 사용하여 현재 실행 중인 프로세스를 실시간으로 모니터링할 수 있습니다.

watch "ps aux | grep apache2"

이 명령어는 apache2 프로세스를 주기적으로 확인하여 서버 상태를 모니터링합니다.

실행 예시:

user@linux:~/workspace$ watch "ps aux | grep apache2"
Every 2.0s: ps aux | grep apache2                                              user: Fri Oct 20 10:25:47 2024

root       1123  0.0  1.0 123456  5678 ?        Ss   09:23   0:00 /usr/sbin/apache2 -k start
www-data   1134  0.0  0.5 654321  2345 ?        S    09:23   0:00 /usr/sbin/apache2 -k start

서버에서 특정 프로세스의 상태를 실시간으로 추적할 때 매우 유용합니다.

watch 명령어 종료

Ctrl + C 키를 눌러 watch 명령어를 종료할 수 있습니다. 이 명령어는 특정 주기 동안 명령어를 실행하는 것이 목적이므로, 실시간 모니터링이 필요 없을 때는 종료해주면 됩니다.

watch 명령어를 통한 다양한 시스템 모니터링

watch 명령어는 디스크 사용량, CPU 로드, 메모리 사용량, 네트워크 상태 등 시스템 전반에 대한 실시간 정보를 확인하는 데 매우 유용합니다. 다음과 같은 명령어 조합을 사용할 수 있습니다:

watch -n 10 uptime      # 10초 간격으로 시스템의 부하(load) 확인
watch -n 5 netstat -tuln   # 5초마다 열린 포트 상태 확인

이와 같은 활용 방법을 통해 시스템 상태를 실시간으로 모니터링하고, 필요할 때 즉각적인 대응이 가능합니다.

결론

리눅스 watch 명령어는 시스템을 실시간으로 모니터링하는 데 매우 유용한 도구입니다. 파일 변화, 네트워크 상태, 메모리 사용량 등을 주기적으로 확인하며, 특히 서버 관리자에게 필수적인 명령어입니다. 주기적으로 명령어를 실행하여 실시간으로 변화하는 시스템 상태를 손쉽게 확인할 수 있습니다. 이를 통해 서버 성능 최적화시스템 관리에 효율적으로 활용할 수 있습니다.

반응형