Crontab работа не запускается ... идеи? - PullRequest
1 голос
/ 05 марта 2010

спасибо за помощь в настройке моей работы 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, и задания там есть.


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


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

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


Обновление:

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

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

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


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


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

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

Ответы [ 3 ]

6 голосов
/ 05 марта 2010

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

У меня всегда есть мои cronjobs как:

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

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

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

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

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

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

set -x

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

#!/bin/bash
#set -x

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

4 голосов
/ 05 марта 2010

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

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

(мой акцент).

1 голос
/ 05 марта 2010

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

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

...