спасибо, что помогли мне настроить мои работы 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. Я уверен.
Cron всегда работает в среде, отличной от того, что вы думаете: -)
У меня всегда установлены мои cronjobs:
*/10 * * * * ( date ; python /webapps/foo/manage.py fetch_articles ) >>/tmp/fetch.out 2>&1
чтобы убедиться, что там что-то записано, что я могу посмотреть.
Это сократит вашу проблему до:
И в последнем случае, надеюсь, будет какой-то вывод, который вы можете отлаживать. Если нет, поставьте вывод там.
Один из способов сделать это:
set -x
в верхней части script, которая приведет к выходу всех строк перед выполнением. Все мои скрипты имеют тенденцию начинаться:
#!/bin/bash
#set -x
поэтому я могу просто раскомментировать эту вторую строку во время отладки.
Из справочной страницы crontab:
ОШИБКИ Хотя cron требует, чтобы каждая запись в crontab заканчивалась символ новой строки, ни команда crontab, ни демон cron не обнаружат этого ошибка. Вместо, обычно начинает загружаться crontab. Однако команда никогда не будет работать. Лучший выбор - убедиться, что ваш crontab имеет пустую строку в конец.
(мой акцент).
crontab -l
приводит к тому, что ваше приглашение отображается в той же строке, что и последнее задание, то это именно тот случай.
Я думаю, что ~ unutbu ответ, вероятно, правильный, если это второе задание, которое не выполняется.
Однако еще одна вещь, которую нужно проверить, заключается в том, требуется ли /webapps/bar/manage.py
эксклюзивный доступ к любым ресурсам, например сетевым сокетам /tempfiles и т.д. Поскольку вы запускаете 2 процесса одновременно, вы можете запускать условие гонки.