cron으로 script를 돌리다 문제가 생기면 디버깅이 힘들다.
cron이 돌다 멈추면 다음 번 주기에 같은 program이 또 실행되서 문제가 되기도 한다.
해결책 1.
* * * * * script명 >> /tmp/script명.log 2>&1
로 반드시 log(로그) file을 남긴다.
해결책 2.
script 내에 수행시간을 출력하는 명령을 넣는다.
echo "`date +20%y.%m.%d %H:%M.%S` : start"
수행 명령
echo "`date +20%y.%m.%d %H:%M.%S` : end"
해결책 3.
시간이 거의 다 됐는 데도 종료되지 않은 process는 강제로 죽인다.
BG_PID_FILE=/tmp/$$.bg_pid
background로 돌리는 파일 실행 &
echo "$! " >> $BG_PID_FILE
sleep 적절한 시간
kill `cat $BG_PID_FILE`
sleep 60
kill -9 `cat $BG_PID_FILE`
rm -f $DB_PID_FILE
댓글 없음:
댓글 쓰기