Cron не будет запускать скрипт python - даже после двух дней поиска в Google - PullRequest
1 голос
/ 02 апреля 2020

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

Некоторая информация:

-> У меня есть приблизительно 20-часовой опыт использования Linux, поэтому я мог пропустить что-то очень основательное c.

-> Linux сервер (Ubuntu) на Linode.com

-> Сценарий запускается в терминале

-> Сценарий имеет разрешения "0644"

-> #!/usr/bin/env python3.7 добавлено в начало скрипта

-> Скрипт принадлежит пользователю "adamsavage", и я попытался добавить его в файл cron обоих пользователей. и файл cron, принадлежащий root с использованием crontab -e и sudo crontab -e соответственно

-> Файлы cron выглядят следующим образом и имеют новую строку в конце:

* * * * * /usr/bin/python3 /home/adamsavage/python-scripts/send_new_sessions.py >> /home/adamasavage/log.txt 2>&1

-> sudo grep CRON /var/log/syslog возвращает это:

Apr  2 15:25:01 noeluddig CRON[7728]: (adamsavage) CMD (/home/adamsavage/python_scripts/send_new_sessions.py >> /home/adamasavage/log.txt)
Apr  2 15:25:01 noeluddig CRON[7729]: (root) CMD (/home/adamsavage/python_scripts/send_new_sessions.py >> /home/adamasavage/log.txt)
Apr  2 15:25:01 noeluddig CRON[7730]: (adamsavage) CMD (echo 'Yo' >> /home/adamsavage/log.txt)
Apr  2 15:25:01 noeluddig CRON[7731]: (root) CMD (echo 'Yo' >> /home/adamsavage/log.txt)
Apr  2 15:25:01 noeluddig CRON[7732]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)

-> Я также пробовал следующее:

* * * * * cd /home/adamsavage/python_scripts/ && /home/adamsavage/python_scripts/send_new_sessions.py >> /home/adamasavage/log.txt

и

* * * * * cd /home/adamsavage/python_scripts/ && /usr/bin/python /home/adamsavage/python_scripts/send_new_sessions.py >> /home/adamasavage/log.txt

-The скрипт должен отправить мне смс с некоторой информацией, которая снова работает при запуске из терминала.

-Я должен также упомянуть, что просто наличие echo "message" >> /home/adamsavage/ouput.txt действительно работает и печатает «сообщение» в этот файл.

Чего мне не хватает? Достаточно сказать, помощь будет принята с благодарностью! :) 1039 *

Ответы [ 3 ]

0 голосов
/ 02 апреля 2020

Попробуйте добавить 2>&1 в конце строки cron:

* * * * * path/to/python /home/adamsavage/python_scripts/send_new_sessions.py >> /home/adamasavage/log.txt 2>&1

0 голосов
/ 07 апреля 2020

Я понятия не имею, почему это так, но что заставило его работать, так это удалить абсолютный путь к файлу журнала. Если кто-нибудь может объяснить это, это было бы здорово!

0 голосов
/ 02 апреля 2020

Вы должны запустить скрипт python с помощью команды python:

* * * * * path/to/python /home/adamsavage/python_scripts/send_new_sessions.py >> /home/adamasavage/log.txt

Например:

* * * * * /usr/bin/python3 /home/adamsavage/python_scripts/send_new_sessions.py >> /home/adamasavage/log.txt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...