명령 줄에서 실행할 때 작동하는 스크립트가 있지만 예약하면 cron
파일이나 명령을 찾을 수 없다는 오류가 발생합니다. 내 질문은 두 가지입니다.
를 사용하여 크론 작업을 예약 할 때
crontab -e
내 사용자 ID를 사용 권한의 기준으로 사용합니까? 아니면 어떤 종류의 cron 사용자 ID와 관련 권한을 사용합니까?크론 작업이 시작되면 작업 디렉토리는 무엇입니까? 실행할 스크립트를 지정하는 디렉토리입니까, 아니면 다른 디렉토리입니까?
내 cron 작업은 다음과 같습니다.
15 7 * * * /home/xxxx/Documents/Scripts/email_ip_script.sh
실제 스크립트는 다음과 같습니다.
vIP_ADDR="`curl automation.whatismyip.com/n09230945.asp`"
echo "$vIP_ADDR"
sed "s/IPADDR/$vIP_ADDR/g" template.txt > emailmsg.txt
ssmtp XXXXX@gmail.com < emailmsg.txt
다음으로 mail
생성 된 메시지를 볼 때 발생하는 오류는 다음과 같습니다 cron
.
sed: can't read template.txt: No such file or directory
/home/xxxx/Documents/Scripts/email_ip_script.sh: line 15: ssmtp: command not found
찾을 수 없지만 template.txt
스크립트와 동일한 디렉토리에 있습니다. 또한 실행할 수 없지만 ssmtp
사용자로 할 수 있습니다. 이것이 제대로 작동하기 위해 무엇을 놓치고 있습니까?
cron
소유하고PATH
있거나 사용자를 확인할 수PATH
있습니까? 나는 ssmtp를 자신의 소유로 설정user
하고wheel
누구나 cron을 포함하여 그것을 사용할 수 있다고 생각합니다. CENTOS 6.2에 도움이된다면