Mam skrypt, który działa, gdy uruchamiam go z wiersza poleceń, ale kiedy go cronplanuję, otrzymuję błędy, że nie może znaleźć plików ani poleceń. Moje pytanie jest dwojakie:
Czy podczas planowania zadania cron używa
crontab -eon 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 mailkomunikat 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.txtale 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?
cronto będzie własne,PATHczy mogę sprawdzić mojego użytkownikaPATH? Skonfigurowałem ssmtp, aby miał swój własnyuseriwheelpozwolenie, myśląc, że pozwoli każdemu go używać (w tym cronowi). Jeśli to pomoże im w CENTOS 6.2