cron 을 이용한 스크립트 주기적인 실행 문제
Webalizer 를 이용한 로그분석 페이지를 만드는 스크립트를 매시간 55분마다 실행되도록 설정했습니다.
문제는 직접 SSH 로 접속하여 프롬프트에서 해당 스크립트를 실행시킬땐 이상없이 로그분석 페이지가 작성되지만, cron 으로는 실행이 되질 않고 있습니다. 그래서 직접 스크립트를 실행하지 않으면 로그분석 페이지는 갱신이 되질 않습니다.
/etc/crontab 의 내용입니다.
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/# run-parts
# minutes hour day month week
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly# Webalizer-parts
55 * * * * root run-parts /etc/cron.wa
/etc/cron.wa 디렉토리 내에는 webalizer.sh 라는 이름의 스크립트 파일이 하나 들어있으며, webalizer 를 실행시키는 일을 합니다.
total 4
-rwxr-xr-x 1 root root 115 Feb 21 19:09 webalizer.sh
webalizer.sh 파일내용
#!/bin/shfor i in /home/httpd/htdocs/weblog/*.conf; do webalizer -c $i; done
touch /var/log/webalizer.sh.touch
/var/log/cron 로그를 보면 매 시간 55분마다 다음과같이 무사히 실행했다는 로그가 남아있습니다. 실제 위에서 작성하도록 한 webalizer.sh.touch 파일도 제시간에 생성되어있습니다.
Feb 23 04:55:00 waitfor CROND[28106]: (root) CMD (run-parts /etc/cron.wa)
무엇을 살펴보고 어떻게 조치를 해야하는지 조언 부탁드립니다.
webalizer 의 PATH 를 full path 로 적어주면 정상 작
webalizer 의 PATH 를 full path 로 적어주면 정상 작동할 듯 싶군요..
cron 등으로 돌게 될 때는.. 환경변수들이 제대로 세팅되지 않은 상태로 돌게 됩니다.. 그래서 webalizer 를 못찾은게 아닌가 싶습니다..
물론 webalizer.sh 등에서 source /etc/profile 을 하는 방법도 있겠지만.. 그거보다는 그냥 full path 를 적어주는게..
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
감사합니다.
가장 먼저 의심했어야 하는 부분인데 미처 생각을 못했습니다.
정말 감사드립니다.
---------------------------------------
http://www.waitfor.com/
http://www.textmud.com/
댓글 달기