Shell Script를 직접 돌릴땐 잘되는데 Cron으로 돌릴때는 잘 안된다?

최근 일주일간 고민하던 내용이 있다.

 

1. root 계정으로 /test/test.sh 쉘스크립트를 짠다.

test.sh의 대략적인 구조는 다음과 같다.

 

#!/bin/sh
Today=$(echo `date +%Y%m%d`)
testDir=$(echo /test/testDir/${Today})
mkdir ${testDir}
cp -rp /var/log/httpd/error_log ${testDir}
tar -cvzf ${testDir}/errorlog_${Today}.tar.gz /etc
ncftpput -R -u copyuser -p password 192.168.1.1 /backup/testDirectory ${testDir}/*.*

rm -rf ${testDir}
cat /dev/null > /var/log/httpd/error_log

exit 0

 

2. sh -x /test/test.sh  를 실행시 스크립트 내용이 잘 동작한다.

 

3. crontab -e 로 cron에 작업시간을 기재하여 매일 10시에 돌도록 작업을 등록한다.

00 10 * * * /bin/sh -x /test/test.sh

 

4. /etc/init.d/crond restart 로 적용시켜준다.
 

cron이 동작하고 나서 9번 항복까지는 잘 도는데 10번 항목의 삭제가 되지 않는 증상이 생긴다.

 

문제점은 권한문제!!

chmod 644로 지정되어 있던 test.sh 를 700으로 변경하니 모든게 잘 동작된다.

스크립트 작성시 권한문제 주의하세요

]]>

도큐멘트, 미분류 에 올린 글

댓글 남기기

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.