crontab не работает должным образом

0

Когда я запускаю скрипт вручную, используя root, он работает нормально. когда я выполняю тот же скрипт внутри cron, он не запускается. Я проверил, что cron на самом деле вызывает скрипт, но скрипт не выполняется. Я экспортировал вывод echos из скрипта в текстовый файл, но текстовый файл ничего не записал. Пожалуйста, проверьте этот cron

*/10 * * * *  sh /var/www/sym_monitor/restart.sh > /var/www/migrate/root_restart.txt
user1597811
источник
Пытаться: /bin/sh -c '/var/www/sym_monitor/restart.sh > /var/www/migrate/root_restart.txt' или просто: /var/www/sym_monitor/restart.sh > /var/www/migrate/root_restart.txt, Возможно, вам придется установить исполняемый бит restart.sh чтобы последний работал.
jaume
+ Изменить > в &> также регистрировать сообщения об ошибках. Если это не поможет, не могли бы вы опубликовать сценарий оболочки?
Dennis

Ответы:

2

Запись cron верна, только если вы используете crontab -e для ее добавления. Если вы добавляете его непосредственно в / etc / crontab, вам нужно указать имя пользователя, под которым он будет запущен.

В случае успешного создания cron должен помещаться в / var / spool / cron /.

Проверьте разрешения скрипта, chmod + x.

Рекомендуется указывать полный путь к оболочке / bin / sh или вообще исключать его.

* / 10 * * * * / bin / sh /var/www/sym_monitor/restart.sh & gt; /var/www/migrate/root_restart.txt

Кроме того, вы включаете в сценарий строку Шебанга? Он должен начинаться с #! / Bin / sh или #! / Bin / bash

Pete Cornell
источник
И это хорошая идея, чтобы указать полный путь к любым исполняемым файлам и используемым файлам.
vonbrand
1

Попробуйте добавить следующее в конец строки crontab:

 2> /var/www/migrate/error.log.txt

Теперь пара предположений (вы могли бы добавить сценарий к вопросу, если он не слишком длинный):

Проверьте в своем сценарии, чтобы увидеть, если у вас есть строка, установите PATH переменная к тому же, что у вас есть, когда вы делаете:

 echo $PATH

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

Вы уверены, что файл имеет как минимум разрешение READ .... сценарию оболочки нужно больше, чем просто разрешение EXECUTE. Вы могли бы включить ls файла тоже.

mdpc
источник