Eu tenho um script que funciona quando o executo a partir da linha de comando, mas quando o agendamento cron
recebo erros que não conseguem encontrar arquivos ou comandos. Minha pergunta é dupla:
Quando agendar um trabalho cron usando
crontab -e
, ele usa meu ID de usuário como base para suas permissões? Ou ele usa um ID de usuário cron de algum tipo e suas permissões relacionadas?Quando um trabalho cron é iniciado, qual é o diretório de trabalho? É o diretório em que especifico o script a ser executado ou um diretório diferente?
Aqui está o meu trabalho cron:
15 7 * * * /home/xxxx/Documents/Scripts/email_ip_script.sh
Aqui está o script real:
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
Aqui estão os erros que recebo quando visualizo a mail
mensagem produzida por 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
Ele não pode encontrar o template.txt
mas reside no mesmo diretório que o script. Ele também não pode ser executado ssmtp
, mas eu posso como meu usuário. O que estou faltando para que isso funcione corretamente?
cron
ele próprioPATH
ou posso verificar o meu usuárioPATH
? Eu configurei o ssmtp para ter o seu própriouser
e awheel
permissão pensando que permitiria a qualquer um usá-lo (incluindo o cron). Se ajuda no Im CENTOS 6.2