Как запустить скрипты 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

  • Виталий
    29.09.2022 в 00:32
    Пишем cron_job.sh

    #!/bin/bash

    source $HOME/.profile

    export DISPLAY=:0.0

    cd /home/zmeika/ && python3 Rossiya.py

    Запускаем crontab -e

    MAILTO=""
    */1 * * * * /tmp/stats.sh

    SHELL=/bin/bash

    30 11 * * * $HOME/cron_job.sh
    Все работает!

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

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