Работа Crontab не запускает идеи?

спасибо за помощь в настройке заданий cron, crontab действительно стал для меня золотой жилой.

К сожалению, у меня есть проблема, и я понятия не имею, что это может быть... в основном работа не запускается, в то время как соседние работы работают. Я объясню


Это мой список заданий crontabs:

*/10 * * * * python /webapps/foo/manage.py fetch_articles

*/10 * * * * python /webapps/bar/manage.py fetch_books

Я записал их в виде файла и сохранил с помощью crontab /path/to/file .

Проверил с помощью crontab -l, задания есть.


Странно то, что один из них выполняется каждые 10 минут в обычном режиме... а другой нет. Пробовал вводить команду вручную, работает без проблем.


У кого-нибудь есть предложения?

Помощь будет высоко оценена, спасибо, ребята.


Обновление:

Я был в файлах системного журнала и нашел это:

5 марта 02:50:01 localhost CRON[21652]: (root) CMD (python /webapps/foo/manage.py fetch_books)

Означает ли это, что crontab нормально выполняет задание?


Спасибо за ваши ответы, ребята!


ИСПРАВЛЕНО! всем большое спасибо!!

Проблема заключалась в том, что сценарий молча завершился сбоем, я считаю, что это связано с изменением PYTHON_PATH из-за того, откуда вызывается сценарий... Я полностью уверен.


person RadiantHex    schedule 05.03.2010    source источник
comment
Сообщают ли вам сообщения об ошибках?   -  person Peter K.    schedule 05.03.2010
comment
что-нибудь в ваших системных журналах ошибок? есть ли разница, если вы свернете оба этих задания в один сценарий оболочки?   -  person Brian Luft    schedule 05.03.2010
comment
Я был в системном журнале, и никаких ошибок... Я добавлю это сообщение. Спасибо за вопрос!   -  person RadiantHex    schedule 05.03.2010
comment
Всегда ли первый работает, а второй нет?   -  person John La Rooy    schedule 05.03.2010
comment
@gnibbler: на самом деле я только что проверил ... это первое задание, которое не выполняется.   -  person RadiantHex    schedule 05.03.2010
comment
можно ли указать, как вы решили ошибку PYTHON_PATH? У меня такая же проблема, и я понятия не имею, что делать.   -  person Ali    schedule 18.01.2012


Ответы (3)


Cron всегда работает в среде, отличной от того, что вы думаете :-)

У меня всегда настроены cronjobs так:

*/10 * * * * ( date ; python /webapps/foo/manage.py fetch_articles ) >>/tmp/fetch.out 2>&1

чтобы убедиться, что есть что-то зарегистрированное, на что я могу посмотреть.

Это сузит вашу проблему до:

  • cron, если временный файл не появляется; или
  • ваш сценарий, если он появится.

И, в последнем случае, надеюсь, будет какой-то вывод, который вы сможете отладить. Если нет, поместите вывод туда.

Один из способов сделать это - поставить:

set -x

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

#!/bin/bash
#set -x

поэтому я могу просто раскомментировать эту вторую строку во время отладки.

person paxdiablo    schedule 05.03.2010

Из справочной страницы crontab:

ОШИБКИ Хотя cron требует, чтобы каждая запись в crontab заканчивалась символом новой строки, ни команда crontab, ни демон cron не обнаружат эту ошибку. Вместо этого crontab загружается нормально. Однако команда никогда не будет запущена. Наилучший выбор — убедиться, что ваш crontab имеет пустую строку в конце.

(выделено мной).

person unutbu    schedule 05.03.2010
comment
@RadiantHex Если crontab -l приводит к тому, что ваше приглашение находится в той же строке, что и последнее задание, то это так. - person Josh Lee; 05.03.2010

Я думаю, что ответ ~ unutbu, вероятно, правильный, если это второе задание не выполняется.

Однако следует проверить, требует ли /webapps/bar/manage.py эксклюзивный доступ к каким-либо ресурсам, например, к сетевым сокетам/временным файлам и т. д. Поскольку вы запускаете 2 процесса одновременно, вы можете вызвать состояние гонки.

person John La Rooy    schedule 05.03.2010