Назад | Перейти на главную страницу

запустить скрипт с параметром в cron

Я хочу запустить .py скрипт:

python /home/project/manage.py slope_update

Если я запускаю его из оболочки, все в порядке, но в cron не работает:

*/10 * * * * root python /home/project/manage.py slope_update

Что не так?

Я редактирую свой файл / etc / crontab от root


SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --repo$
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --repo$
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --repo$
#

*/10 * * * * root /usr/bin/python /home/project/manage.py slope_update

С помощью пользовательских квантов:

* / 10 * * * * корень / usr / bin / python /home/project/manage.py slope_update >> /tmp/foo.log 2> & 1

кот foo.log

Неизвестная команда: slope_update Введите для использования команду manage.py help.

Почему slope_update пытается использовать как команду, но должен иметь как параметр Если этот "python /home/project/manage.py slope_update" запускается в терминале, это работает. Зачем?

Перенаправление ошибки в файл облегчит отладку:

*/10 * * * * root python /home/project/manage.py slope_update >> /tmp/foo.log 2>&1

Попробуйте указать полный путь к python в вашем crontab, например.

*/10 * * * * root /usr/bin/python /home/project/manage.py slope_update

Редактировать:

Проблема будет в том, что PATH в cron не включает каталог, в котором установлен python (/ usr / bin), поэтому вам нужно указать полный путь к python.

Редактировать Редактировать:

Вы запускаете это из / etc / crontab? Если нет, то корневой параметр не требуется и может вызывать проблемы.

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

Проверьте, где живет ваш питон, which python и соответствующим образом скорректируйте путь в crontab.