Ho uno script che funziona quando lo eseguo dalla riga di comando, ma quando lo pianifico cronottengo 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 mailmessaggio 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.txtma risiede nella stessa directory dello script. Inoltre non può essere eseguito ssmtp, ma posso come mio utente. Cosa mi manca per farlo funzionare correttamente?
cronil suoPATHo posso controllare il mio utentePATH? Ho impostato ssmtp per avere il propriousere ilwheelpermesso pensando che avrebbe permesso a chiunque di usarlo (incluso cron). Se aiuta Im su CENTOS 6.2