Назад | Перейти на главную страницу

скрипт задания cron - скрипт не работает из cron (или не запускается)

Я создал сценарий, чтобы что-то сделать (после того, как я уменьшил его до эха "НАКОНЕЦ РАБОТАЕТ" для целей тестирования). Если я напечатаю

#bash /var/www/html/somedir/script.sh

работает нормально.

Проблема в том, что мне нужен cron для доступа к нему, а он не работает.

Для настройки cron я использовал:

crontab -e

15 * * * * /var/www/html/somedir/script.sh 

или

15 * * * * bash /var/www/html/somedir/script.sh

Я вообще не вижу результата.

Также я пробовал это регистрировать

15 * * * * /var/www/html/somedir/script.sh > cronscriptlog.log

Журнал пуст.

Операционная система - CentOS 5.5.

Иногда легко упустить простые вещи.

Другая вещь, которую нужно проверить, - это среда cron, она будет запускать ее каждую минуту с этим, поэтому просто закомментируйте ее после того, как она даст вам вывод один раз.

* * * * * root env > /tmp/cronenv.log

Всегда есть разница между средой Bash и средой cron.

Удостовериться /var/www/html/somedir/script.sh не полагается ни на что, кроме PATH cron по умолчанию. В CentOS по умолчанию PATH установлен на /sbin:/bin:/usr/sbin:/usr/bin.

Вы можете создать такие задания cron:

15 * * * * ( . /etc/profile && /var/www/html/somedir/script.sh )

или

15 * * * * su - user /var/www/html/somedir/script.sh 

чтобы получить среду выполнения, аналогичную вашей командной строке.

Есть ли какие-либо соответствующие сообщения в файле журнала cron /var/log/cron в системе CentOS?

Проверьте почту для учетной записи, которая пытается запустить сценарий, куда cron отправляет любые выходные данные, полученные из сценария.

Вы захватили только stdout из ypur script, вы также можете захватить stderr с помощью &> cronscriptlog.log.