Вопрос

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

Это было полезно?

Решение

Крон всегда работает в окружающей среде, отличается от того, что вы думаете :-)

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

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

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

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

  • Cron, если файл Temp не появляется; или
  • Ваш скрипт, если он появляется.

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

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

set -x

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

#!/bin/bash
#set -x

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

Другие советы

От Crontab Manpage:

Ошибки хотя Cron требует, чтобы каждая запись в конец Crontab в новой строкеНи одна команда Crontab, ни демон Cron не обнаружит эту ошибку. Вместо этого Crontab будет загружен нормально. Тем не менее, команда никогда не будет работать. Лучший выбор - убедиться, что ваш Crontab имеет пустую строку в конце.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top