Linux cronjob не работает (выполнить скрипт) - PullRequest
3 голосов
/ 14 августа 2010

Я создал cronjob с помощью команды crontab -e:

*/1 * * * * /var/lib/tomcat/webapps/ROOT/WEB-INF/scripts/test.sh 

Этот файл test.sh должен выполняться каждую минуту. Но это не работает.

Если я запускаю скрипт вручную, он работает нормально. Так что я думаю, что проблема в cronjob, а не в сценарии;)

Существуют ли какие-либо разрешения или что-то еще, что блокирует cronjob?

Правильный ли синтаксис cronjob?

Thx

1 Ответ

4 голосов
/ 14 августа 2010

Для начала вам не нужно /1, если вы хотите, чтобы это делалось каждую минуту. Просто установите поле минут на *.

Далее, вы должны поместить, как первые строки в вашем тестовом скрипте (хотя после строки #!, если она есть):

env >/tmp/test.sh.dummy
set >>/tmp/test.sh.dummy

и посмотрите, появляется ли этот файл.

Это скажет вам, работает скрипт или нет.

Если он не запущен, убедитесь, что cron работает сам:

pax> ps -ef | grep cron | grep -v grep
root      1048     1  0 08:45 ?        00:00:00 cron

(у меня есть).

Если работает , наиболее вероятная проблема заключается в том, что среда, в которой cron выполняет ваши задания, находится далеко от среды, которую предоставляет вам оболочка. Изучите разницу между тем, что было выведено в ваш файл /tmp/test.sh.dummy, и тем, что дает ваша оболочка при выполнении env ; set.

...