У мене є сценарій, який працює, коли я запускаю його з командного рядка, але коли я планую його, cron
я отримую помилки, які він не може знайти файли чи команди. Моє запитання двояке:
Коли я планую роботу з cron за допомогою
crontab -e
, чи використовує він мій ідентифікатор користувача як основу для його дозволів? Або він використовує ідентифікатор користувача cron якогось типу та пов'язані з ним дозволи?Коли запускається робота cron, що таке робочий каталог? Це каталог, де я вказую сценарій для запуску, чи інший каталог?
Ось моя робота з крон:
15 7 * * * /home/xxxx/Documents/Scripts/email_ip_script.sh
Ось власне сценарій:
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
Ось помилки, які я отримую, коли я переглядаю mail
повідомлення, створене 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
Він не може знайти, template.txt
але він знаходиться в тому ж каталозі, що і сценарій. Він також не може працювати ssmtp
, але я можу бути своїм користувачем. Що мені не вистачає, щоб це нормально працювало?
cron
буде вона власноюPATH
чи я можу перевірити свого користувачаPATH
? Я встановив ssmtp, щоб він мав власнийuser
таwheel
дозвіл, думаючи, що це дозволить будь-кому користуватися ним (включаючи cron). Якщо це допоможе Ім на CENTOS 6.2