[sh] 쉘에서 카운터 이용하기 Develop Tip

쉘 프로그래밍은 그 역사가 UNIX의 역사와 같이 한다고 해도 과언이 아닐 정도로 
그 역사가 오래 되었다고 볼 수 있을 것 같습니다.

그 정도로 시스템을 관리하다 보면 쉘 프로그램을 많이 사용하게 되는데,
문제는 가장 일반적인 sh, 또 GNU의 bash 등과 busybox의 sh 등이 약간씩
그 사용 방법이 틀린데 어려움이 있을 수 있습니다.

암튼 위의 곳에서 모두 테스트 하고, 다음과 같은 WHILE Loop를 돌면서
필요한 일을 하고 카운터가 5를 넘어가게 되면 WHILE Loop를 빠지게 되는
간단한 쉘 프로그램을 만들어 보았습니다.

쉽게 응용하여 더 복잡한 것을 만들 수 있을 것입니다.

# cat foo.sh

PROCESS=mongod

COUNTER=1

while [ 1 ];do

    ps -ef | grep $PROCESS | grep -v grep 2>/dev/null >/dev/null

    if [ $? -eq 0 ];then

        echo "$PROCESS is started."

    else

        echo "$PROCESS is stopped."

    fi

    echo "COUNTER=$COUNTER "

    COUNTER=$(($COUNTER+1))

    if [ $COUNTER -gt 5 ];then

        break

    fi

    sleep 1

done


위의 내용은 mongod 를 ps 로 감시하고 있다가,
돌고 있는지, 아님 실행되고 있지 않은지를
1초마다 다섯번 감시하는 것입니다.

어느 분께는 도움이 되셨기를...


덧글

댓글 입력 영역

구글애드텍스트