У меня есть простой сценарий, и я прошу crontab выполнить его. В сценарии у меня есть 2 команды, которые я хочу запустить, и добавить результат в файл. Только одна из команд делает то, что должна. Однако, если я запускаю сценарий сам как «root», он работает. Все машины, RHEL, Ubuntu Server / Desktop и Fedora имеют одинаковый результат. Ниже мой сценарий и crontab -l
.
Я все исследовал и пробовал, даже установил $PATH
, но ничего. В service httpd status
не побежит.
#!/bin/bash
#check httpd status and append to file
service httpd status >> /path/to/file;
#check cupsd status and append to file
netstat -punta | grep cupsd >> /path/to/file;
exit
Crontab:
*/1 * * * * /usr/local/bin/script.sh
Решение:
Вместо запуска 'service httpd status' run '/etc/init.d/httpd status
Это сработало безупречно. Что меня на это повлияло, так это попытка запустить это в Ubuntu 14.04.2 LTS, я просмотрел журнал cron на предмет ошибок, нашел ошибки в Интернете и заменил приведенное выше.