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