Выполнение скрипта sh из cron

У меня есть скрипт test.sh

#!/bin/sh
php /home/v/file.php
sh /root/x/some.sh

когда я запускаю файл как root из командной строки, он работает.

sh /home/v/test.sh 

когда я устанавливаю его в crontab -e (это корневой cron), не работает

 * * * * * sh /home/v/test.sh

Что я делаю не так? Спасибо

2 ответа

Решение

Среда для cron очень ограничена, старайтесь всегда использовать полный путь для двоичных файлов.

#!/bin/sh
/usr/bin/php /home/v/file.php
/bin/sh /root/x/some.sh

Это означает, что ваш бинарный файл php находится в /usr/bin/php, пожалуйста, измените его, если это не так

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

MAILTO=youraddress@yourmail.com
* * * * * sh /home/v/test.sh

Вероятно, php двоичный файл не входит в стандартный путь cron. Вы должны указать полный путь к вашему php-файлу в вашем скрипте

/usr/bin/php /home/v/file.php

Вы также должны предоставить путь для ш

/bin/sh /root/x/some.sh

Другие вопросы по тегам