Mam skrypt, który działa, gdy uruchamiam go z wiersza poleceń, ale kiedy go cron
planuję, otrzymuję błędy, że nie może znaleźć plików ani poleceń. Moje pytanie jest dwojakie:
Czy podczas planowania zadania cron używa
crontab -e
on mojego ID użytkownika jako podstawy dla jego uprawnień? Czy też używa jakiegoś rodzaju identyfikatora użytkownika cron i powiązanych uprawnień?Po uruchomieniu zadania cron, jaki jest katalog roboczy? Czy to katalog, w którym określam skrypt do uruchomienia, czy inny katalog?
Oto moja praca Crona:
15 7 * * * /home/xxxx/Documents/Scripts/email_ip_script.sh
Oto rzeczywisty skrypt:
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
Oto błędy, które otrzymuję, gdy przeglądam mail
komunikat wyprodukowany przez 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
Nie można go znaleźć, template.txt
ale znajduje się w tym samym katalogu co skrypt. To także nie może działać ssmtp
, ale mogę jako mój użytkownik. Czego mi brakuje, żeby to działało poprawnie?
cron
to będzie własne,PATH
czy mogę sprawdzić mojego użytkownikaPATH
? Skonfigurowałem ssmtp, aby miał swój własnyuser
iwheel
pozwolenie, myśląc, że pozwoli każdemu go używać (w tym cronowi). Jeśli to pomoże im w CENTOS 6.2