Linux에서 Watch 명령을 사용하여 주기적으로 프로그램을 실행하는 방법

때로는 진행 중인 프로세스, 디스크 공간 사용량 또는 사용자 로그인과 같은 시스템의 다양한 측면을 모니터링하기 위해 명령이나 프로그램을 반복적으로 실행해야 합니다. Linux watch 명령을 사용하면 이러한 작업을 수동으로 반복해서 실행할 필요 없이 자동화할 수 있습니다.

이 명령을 사용하면 사용자 로그인, 네트워크 상태, 메모리 및 CPU 사용량, 디스크 공간 등 시스템 활동을 실시간으로 모니터링할 수 있습니다. Linux에서 watch 명령을 사용하는 방법을 살펴보겠습니다.

감시 명령이란 무엇입니까?

watch Linux 명령은 지정된 명령이나 프로그램을 일정한 간격으로 반복적으로 실행하고 해당 출력을 터미널에 표시합니다. 이를 통해 실시간으로 출력의 변화를 관찰할 수 있습니다. 각 간격마다 출력을 새로 고쳐 명령의 이전 출력을 덮어씁니다. 기본적으로 명령은 2초마다 반복되며 Ctrl + C를 사용하여 수동으로 중지할 때까지 계속됩니다.

감시 명령 구문

watch 명령의 구문은 다음과 같습니다.

 watch options <command> 

watch 명령과 함께 사용할 수 있는 다양한 명령줄 옵션이 있습니다. 옵션 없이 watch 명령을 실행하면 2초마다 지정된 명령이 실행됩니다. 예를 들어, 다음은 ls 명령의 출력을 보여줍니다.

 watch ls -l ~/ 

출력에는 파일이 생성되거나 삭제되거나 크기가 변경되는 경우 디렉터리 목록의 변경 사항이 표시되며 2초마다 출력이 새로 고쳐집니다.

watch를 사용하여 X초마다 명령 실행

watch 명령의 업데이트 간격을 변경할 수 있습니다. 이는 명령을 반복하기 전에 watch 명령에 x초 동안 기다리도록 지시할 수 있음을 의미합니다. 업데이트 간격을 변경하려면 -n 옵션과 시간 간격(초)을 차례로 사용하십시오.

 watch -n  

예를 들어, 5초마다 명령을 실행하려면 다음을 실행합니다.

 watch -n 5 <command> 

업데이트 간 변경 사항 강조

watch 명령은 새로 고칠 때마다 출력을 덮어씁니다. -d 옵션을 사용하면 이전 출력과 업데이트된 출력 간의 변경 사항을 강조 표시할 수도 있습니다.

 watch -d 

watch 명령 출력에서 ​​헤더 숨기기

기본적으로 watch 명령은 업데이트 간격, 명령 이름, 시스템의 현재 날짜 및 시간이 포함된 모든 출력 상단에 헤더를 표시합니다. -t 옵션을 사용하여 출력에서 ​​헤더를 제거할 수 있습니다.

 watch -t <command> 

오류 시 경고음 재생

Linux 프로세스 실행이 완료되면 종료 코드를 반환합니다. 관례적으로 성공 시 값은 0이고 오류를 나타내려면 0이 아닙니다. watch 명령의 -b 옵션은 명령이 0이 아닌 종료를 반환하는 경우 경고음을 재생합니다.

  서브넷팅 튜토리얼, 모두를 위한 설명

sshd.service를 모니터링하고 서비스가 중지되면 알림을 받고 싶다고 가정해 보겠습니다. 당신은 다음을 사용할 것입니다 :

 watch -b sudo systemctl status sshd.service 

이 명령은 서비스가 중지될 때 경고음을 울립니다. 서비스가 재개되면 경고음이 중지됩니다. 이를 테스트하려면 다른 터미널 창을 열고 서비스를 중지하세요. 서비스를 다시 시작할 때까지 계속해서 경고음이 울립니다. 그러나 이 기능을 사용하려면 시스템에 경고음 패키지가 설치되어 있어야 합니다.

출력 변경 시 watch 명령 종료

명령 출력이 변경되면 watch 명령에 실행을 중지하고 종료하도록 지시할 수도 있습니다. -g 옵션을 사용하여 이 작업을 수행할 수 있습니다. 이 옵션은 출력의 특정 변경 사항을 기다리는 시나리오에서 매우 유용합니다.

출력이 변경되면 watch 명령이 중지됩니다. 이 사용법을 echo 명령과 결합하여 화면에 메시지를 표시할 수 있습니다.

예를 들어 파일이 디렉터리에 도착할 때까지 기다리는 시나리오를 생각해 보세요. 다음 명령은 지정된 파일의 디렉터리를 모니터링합니다. 도착하자마자 watch 명령 실행이 중지되고 도착한 메시지 파일이 터미널에 표시됩니다.

 watch -g "ls -l | grep filename" && echo "file arrived" 

또 다른 유용한 예는 특정 사용자가 시스템에 로그인할 때의 알림입니다.

 watch -g "who | grep username" && echo "username logged in" 

이 명령은 로그인한 사용자를 나열하는 who 명령의 출력을 모니터링합니다. 사용자가 로그인하면 watch 명령이 중지되고 터미널에 메시지가 표시됩니다.

마찬가지로, 파일에 일부 변경 사항이 있을 때 watch 명령에 서비스를 중지하도록 지시할 수 있습니다. 파이프로 연결된 명령 체인을 사용할 때는 전체 명령을 따옴표로 묶어야 한다는 점을 명심하세요.

Linux 시스템에서 활동 보기

동일한 프로세스를 반복적으로 수행하는 경우 watch 명령을 사용하여 자동화하는 것이 좋습니다. 변경된 내용을 확인하기 위해 명령을 자주 입력하지 않아도 됩니다.

다른 Linux 명령과 함께 watch 명령을 사용하여 시스템 리소스 및 활동을 모니터링하고 파일 또는 디렉터리의 변경 사항을 추적할 수도 있습니다.

  Roku TV에서 작동하지 않는 앱 수정