Я создал Python script, который я хочу запускать ежедневно через cronjob на сервере Ubuntu.
Вот как этот script будет запущен из командной строки:
python /home/username/public_html/IDM_app/manage.py cleanUpPosts
При вызове из CLI script отлично работает.
Однако, когда я пытаюсь запустить script через cronjob, script не работает должным образом.
Файлы журнала показывают, что запрашивается script, но они не показывают, почему script не выполняется должным образом.
Я добавил запись Python в script. Когда script вызывается из CLI, ведение журнала происходит правильно. Когда вызывается из cron, ведение журнала python не может записать в него файл журнала.
Я подозреваю, что проблема заключается в том, что cronjob не запускает оболочку, когда запрашивает script.
Я не могу найти нигде, где демона cron регистрирует его ошибки.
Я создал /var/log/cron.log
Тем не менее это, похоже, не обновляется.
Поскольку я думаю, что проблема связана с переменными ENV, я попытался заставить cronjob отображать ENV для себя.
Вот как выглядит мой crontab:
$ crontab -u имя пользователя -e
m h dom mon dow command
43 17 * * * /bin/sh python /home/username/public_html/IDM_app/manage.py cleanUpPosts
43 17 * * * python /home/username/public_html/IDM_app/manage.py cleanUpPosts
45 21 * * * echo "-----------------"; echo "import os; print os.environ" | python
47 21 * * * /bin/sh echo "------with shell-------"; echo "import os; printos.environ" | python
[email protected]
Я думал, что он выйдет на экран, но это не так. Где также будут выводиться переменные ENV?
Независимо отсюда, вот файлы журнала:
# tail -n 5 /var/log/*.log
==> /var/log/auth.log <==
Jan 13 17:43:01 servername CRON[7901]: pam_unix(cron:session): session opened for user username by (uid=0)
Jan 13 17:43:01 servername CRON[7902]: pam_unix(cron:session): session opened for user username by (uid=0)
Jan 13 17:44:48 servername su[7909]: Successful su for root by username
Jan 13 17:44:48 servername su[7909]: + /dev/pts/0 username:root
Jan 13 17:44:48 servername su[7909]: pam_unix(su:session): session opened for user root by username(uid=1000)
==> /var/log/bootstrap.log <==
==> /var/log/cron.log <==
==> /var/log/daemon.log <==
==> /var/log/dpkg.log <==
==> /var/log/kern.log <==
==> /var/log/lpr.log <==
==> /var/log/mail.log <==
==> /var/log/mysql.log <==
==> /var/log/pycentral.log <==
==> /var/log/user.log <==
Что еще я должен попробовать, чтобы определить, почему мои скрипты работают неправильно?