Crontab работа не начинается ... идеи?

1

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


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

Помощь была бы очень признательна, спасибо, ребята.


Update:

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

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

Означает ли это, что crontab называет работу прекрасной?


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


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

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

  • 0
    Сообщения говорят вам что-нибудь об ошибках?
  • 0
    что-нибудь в журналах вашей системной ошибки? Будет ли разница, если вы свернете обе эти задачи в один сценарий оболочки?
Показать ещё 4 комментария
Теги:
cron
crontab

3 ответа

6
Лучший ответ

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

У меня всегда установлены мои cronjobs:

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

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

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

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

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

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

set -x

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

#!/bin/bash
#set -x

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

4

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

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

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

  • 1
    @RadiantHex Если crontab -l приводит к тому, что ваше приглашение отображается в той же строке, что и последнее задание, то это именно тот случай.
1

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню