[shell] Shell 스크립트의 실행 상태를 실시간으로 모니터링

Shell 스크립트를 실행할 때 상태를 실시간으로 모니터링하는 것은 스크립트 실행 중에 발생한 문제를 빠르게 파악하고 해결하는 데 도움이 됩니다. 이를 수행하기 위해 여러 가지 방법이 있지만, 이 글에서는 주로 watch 명령어를 사용하여 실행 중인 스크립트의 상태를 실시간으로 모니터링하는 방법에 대해 다루겠습니다.

watch 명령어

watch 명령어는 주기적으로 특정 명령어나 스크립트의 출력을 갱신하여 보여주는 유틸리티입니다. 예를 들어, 다음과 같이 사용할 수 있습니다.

watch -n 1 'ps aux | grep my_script.sh'

위 명령어는 ps aux | grep my_script.sh 명령어를 1초 간격으로 실행하여 결과를 출력합니다. 이렇게 하면 my_script.sh이 실행 중인지 계속해서 확인할 수 있습니다.

while 루프를 사용한 모니터링

또 다른 방법은 watch 명령어 대신 while 루프를 사용하여 특정 조건이 충족될 때까지 스크립트를 실행하고 상태를 모니터링하는 것입니다. 아래는 이를 위한 간단한 예제입니다.

#!/bin/bash
while true
do
    output=$(ps aux | grep my_script.sh)
    if [ -n "$output" ]
    then
        echo "Script is running"
    else
        echo "Script is not running"
    fi
    sleep 1
done

위 스크립트는 my_script.sh가 실행 중일 때 “Script is running”을 출력하고, 그렇지 않을 때 “Script is not running”을 출력합니다. 1초마다 스크립트의 상태를 확인하여 모니터링할 수 있습니다.

결론

Shell 스크립트를 실행할 때 상태를 실시간으로 모니터링하는 것은 스크립트 실행 중 문제를 신속하게 해결하는 데 도움이 됩니다. 여기서는 watch 명령어와 while 루프를 사용하여 실행 중인 스크립트의 상태를 모니터링하는 방법을 알아보았습니다.

이러한 기술을 통해 여러분은 Shell 스크립트 실행 중에 발생하는 문제를 더 신속하게 파악하고 대응할 수 있을 것입니다.

Reference: