Linux 운영 체제는 진행 중인 프로세스, 하드 드라이브 스토리지 사용률, 사용자 로그인 이벤트 등 시스템 내에서 지속적인 활동을 모니터링할 수 있는 효율적인 수단을 제공합니다. 이러한 반복 작업의 자동 실행을 용이하게 하기 위해 Linux 시스템에서는 watch 명령을 사용할 수 있습니다. 이 명령은 작업을 실행해야 할 때마다 수동으로 개입할 필요가 없으므로 프로세스를 간소화합니다.
watch 명령은 사용자 로그인, 네트워크 상태, 메모리 및 CPU 사용량, 디스크 공간 등의 정보를 포함하여 시스템 활동을 실시간으로 모니터링할 수 있는 강력한 도구입니다. watch 명령의 기능을 활용하려면 구문과 사용법을 이해하는 것이 중요합니다. 이를 통해 시스템 성능에 대한 귀중한 인사이트를 얻고 문제가 심각해지기 전에 잠재적인 문제를 식별할 수 있습니다.
감시 명령이란 무엇인가요?
Linux의 “watch” 명령을 사용하면 특정 명령이나 프로그램을 지속적으로 실행할 수 있으며, 터미널 내에서 결과를 실시간으로 표시하는 옵션이 있습니다. 출력은 일정한 간격으로 업데이트되어 이전에 표시된 정보를 대체합니다. 이 기능은 기본적으로 2초 간격으로 작동하며, 사용자가 키보드 단축키 ‘Ctrl + C’를 사용하여 프로세스를 종료할 때까지 계속됩니다.
감시 명령 구문
이를 보다 정교하게 표현할 수 있는 한 가지 가능한 방식은 다음과 같습니다: “‘watch’ 명령의 문법 구조는 다음 요소로 구성됩니다: [세부 정보 삽입]. ‘watch’와 같은 특정 키워드와 명령을 사용하면 주어진 시스템 또는 환경 내에서 특정 작업을 수행하라는 지침이나 프롬프트를 전달하는 역할을 합니다.
watch options <command>
watch 명령은 명령줄 인터페이스를 통해 활용할 수 있는 다양한 접근 가능한 옵션을 제공합니다. 지정된 매개변수 없이 watch 명령을 실행하면 기본적으로 2초마다 지정된 작업이 시작됩니다. 예를 들어 다음과 같이 “ls” 명령으로 생성된 출력이 표시되는 것을 고려해 보겠습니다:
watch ls -l ~/
파일의 크기를 생성, 삭제 또는 변경하면 이 애플리케이션은 2초 간격으로 목록 카탈로그를 업데이트하여 해당 내용에 대한 새로운 추가, 빼기 또는 수정을 반영합니다.
watch를 사용하여 X초마다 명령 실행
사용자는 “-n” 옵션을 사용하여 시간 간격을 지정한 다음 원하는 기간(초)을 지정하여 “watch” 명령이 실행되는 주기를 수정할 수 있습니다.
watch -n
5초마다 반복적으로 명령을 실행하려면 다음 구문을 활용할 수 있습니다:
watch -n 5 <command>
업데이트 간 변경 사항 강조 표시
“watch” 명령을 사용하면 업데이트할 때마다 해당 결과를 덮어쓸 수 있습니다. “-d” 옵션을 사용하면 표시된 정보의 연속적인 반복 사이의 불일치를 강조할 수 있습니다.
watch -d
watch 명령의 출력에서 헤더 숨기기
watch 명령은 일반적으로 업데이트 간격, 명령 이름, 현재 타임스탬프와 같은 정보를 포함하는 헤더를 출력에 포함합니다. 그러나 원하는 경우 `watch` 명령과 함께 `-t` 플래그를 사용하여 이 헤더를 생략할 수 있습니다.
watch -t <command>
오류 발생 시 경고음 재생
Linux 프로세스가 완료되면 종료 코드가 반환되며, 관례에 따라 0 값은 성공적인 실행을 의미하고 0이 아닌 값은 오류를 나타냅니다. watch 명령에 -b 옵션을 사용하면 0이 아닌 종료 코드가 생성될 때 일반적으로 신호음(삐 소리)이 울립니다.
“sshd.service” 파일에 표시된 대로 “sshd” 서비스의 기능을 계속 감시하고 서비스 작동이 중단되는 경우 알림을 받고자 한다고 가정할 때, 이러한 시나리오에서는 이 명령을 사용하는 것이 적절합니다:
watch -b sudo systemctl status sshd.service
앞서 언급한 명령은 지정된 서비스가 작동을 중단할 때마다 신호음 형태로 경고음을 발생시켜야 합니다. 반대로 서비스가 다시 활성화되면 경고음이 사라집니다. 이 기능의 기능을 검증하기 위해 추가 터미널 창을 열고 이를 통해 앞서 언급한 서비스를 일시 중단하는 것이 좋습니다. 그 결과 서비스가 재개될 때까지 단말기에서 연속적으로 경고음이 울리게 됩니다. 단, 이 기능의 사용 가능 여부는 시스템 소프트웨어 구성에 “신호음” 유틸리티가 있는지 여부에 따라 달라질 수 있다는 점에 유의하세요.
출력 변경 시 감시 명령 종료
“-g” 플래그를 사용하면 출력이 변경된 “감시” 명령의 실행을 중단할 수 있으므로 결과 모니터링이 우선시되는 경우 신속하게 결론을 내릴 수 있습니다.
출력이 변경되면 감시 명령은 작동을 중단합니다. 이 기능은 화면에 알림을 표시하기 위해 에코 명령과 통합될 수 있습니다.
특정 파일이 지정된 디렉터리 중 하나에 나타나기를 기다리고 있다고 가정합니다.이러한 경우 제공된 명령을 실행하면 원하는 파일이 발견될 때까지 해당 디렉터리를 지속적으로 모니터링하게 됩니다. 파일이 감지되면 감시 명령의 작동이 중지되고 콘솔에 파일 도착을 알리는 알림이 표시됩니다.
watch -g "ls -l | grep filename" && echo "file arrived"
주목할 만한 사례는 특정 개인이 네트워크에 액세스하는 경우 경고를 제공하는 것입니다:
watch -g "who | grep username" && echo "username logged in"
주어진 지침은 시스템이 로그인 발생 시 “who” 명령에 의해 생성된 활성 사용자 목록을 관찰하도록 프로그래밍된 자동화 프로세스에 관한 것입니다. 이러한 활동이 식별되면 “감시” 명령의 실행이 중지되고 해당 알림이 터미널 인터페이스 내에 표시됩니다.
유사한 맥락에서, 사용자가 특정 파일을 수정할 때마다 특정 서비스의 작동을 중지하도록 “watch” 명령에 지시하는 것이 가능합니다. 그러나 파이프를 통해 연결된 일련의 명령을 사용할 때는 따옴표 안에 전체 명령어를 포함시켜야 합니다.
Linux 시스템에서 활동 보기
특정 작업을 여러 번 반복하는 것은 지루하고 시간이 많이 소요될 수 있습니다. 이를 방지하려면 “watch” 명령을 사용하는 것이 좋습니다. 이 명령은 업데이트나 변경을 위해 계속 수동으로 입력할 필요 없이 필요한 단계를 자동으로 실행합니다. 이 방법을 구현하면 워크플로우를 간소화하고 중복 작업을 제거하여 생산성을 최적화할 수 있습니다.
다양한 Linux 명령과 함께 “watch” 명령을 사용하면 시스템 리소스 및 프로세스를 면밀히 조사하고 파일 또는 디렉토리 구조 내의 변경 사항을 모니터링할 수 있습니다.