Как запустить скрипты python через cron на Linux

Admin Linux

Описание процесса запуска скриптов python на сервере Linux.

Альтернативы cron на python — timer или периодические задачи (celery).

Подготовка сервера

Сервер должен быть сконфигурирован для работы с python. Повторю основное из статьи по ссылке.

На сервере должны быть установлены пакеты для python:

sudo apt install python3-pip python3-dev python3-setuptools build-essential libssl-dev libffi-dev

Установлен пакет python3-venv:

sudo apt install python3-venv

Положить файлы в требуемую директорию и создать там виртуальную среду:

python3 -m venv venv

Подготовка файла

В верху файла python добавить строку ведущую к виртуальному окружению python:

#!/home/user-name/project/venv/bin/python

Сделать файл исполняемым:

chmod +x ploshadka.net.py

Если нужны зависимости (модули) к файлу их можно отдельно установить через файл requirements.txt.

Добавление в cron

Есть отдельная статья по работе с кроном в Linux.

Открыть крон файл:

crontab -e

А если мы вошли в качестве другого пользователя, то создадим сначала ему кронтаб:

crontab -e -u user_name_ploshadka.net

Если будет ошибка:

no crontab for root - using an empty one

Будет предложено какой редактор использовать для просмотра кронов. Пропустите это сначала и посмотрите где находится nano (если конечно предпочтение отдается ему):

whereis nano

А затем указывая его путь установим редактор по умолчанию:

export EDITOR=/usr/nano

Добавить наш скрипт:

0 12 * * * ~/project/app/python_script.py > ~/project/logs/python_script.log 2>&1

Строка состоит из: время запуска / скрипт запуска / лог запуска (если ошибок не будет, он будет пустым, если специально туда ничего не выводить).

Возможные ошибки

Не видится путь к модулям. Используйте эту статью.

Метки:

Кстати, на сайте нет рекламы. У сайта нет цели самоокупаться, но если вам пригодилась информация можете задонатить мне на чашечку кофе в макдаке. Лайкнуть страницу или просто поблагодарить. Карма вам зачтется.

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"Как запустить скрипты python через cron на Linux"