2010-08-14 4 views
3

Я создал cronjob с командой кронтаб -e:Linux cronjob не работает (выполнить скрипт)

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

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

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

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

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

Thx

+0

ваш вопрос не о программировании –

+0

Проблема заключается в скрипте, а не в cronjob. –

+2

Этот вопрос касается программирования. – MarkR

ответ

4

Для начала, вам не нужно /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.

Смежные вопросы