Ho uno script che funziona quando lo eseguo dalla riga di comando, ma quando lo pianifico cron
ottengo errori che non riesce a trovare file o comandi. La mia domanda è duplice:
Quando pianifico un cron job utilizzando
crontab -e
, utilizza il mio ID utente come base per le sue autorizzazioni? Oppure utilizza un ID utente cron di qualche tipo e le relative autorizzazioni?Quando viene avviato un cron job, qual è la directory di lavoro? È la directory in cui specifico lo script da eseguire o una directory diversa?
Ecco il mio lavoro cron:
15 7 * * * /home/xxxx/Documents/Scripts/email_ip_script.sh
Ecco lo script attuale:
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
Ecco gli errori che visualizzo quando visualizzo il mail
messaggio prodotto da 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
Non riesce a trovare template.txt
ma risiede nella stessa directory dello script. Inoltre non può essere eseguito ssmtp
, ma posso come mio utente. Cosa mi manca per farlo funzionare correttamente?
cron
il suoPATH
o posso controllare il mio utentePATH
? Ho impostato ssmtp per avere il propriouser
e ilwheel
permesso pensando che avrebbe permesso a chiunque di usarlo (incluso cron). Se aiuta Im su CENTOS 6.2