Как настроить автоматический запуск python скрипта на сервере под управлением linux?

У вас есть скрипт, с помощью которого вы получаете данные каждый день. Например из API яндекс директ или google analytics. Вы хотите автоматизировать это действие, вам надоело вручную каждый день запускать скрипт. Для этого в linux есть планировщик задач cron.

Cron — это сервис, как и большинство других сервисов Linux, он запускается при старте системы и работает в фоновом режиме. Его основная задача выполнять нужные процессы в нужное время. Регулярные действия описываются инструкциями, помещенными в файлы crontab и в специальные директории.

Для того, чтобы отредактировать файл crontab нужно ввести в консоль команду 

Откроется файл crontab

crontab1

Инструкции для cron имеют формат

минута час день месяц день_недели /путь/к/исполняемому/файлу

Рассмотрим пример. Скрипт получает данные с сайта hh.ru. Настроим его автоматический запуск каждую минуту, для этого пропишем в crontab инструкцию

Разберем, что значит каждая часть инструкции

здесь мы говорим, что хотим запускать скрипт каждую минуту, каждого часа, каждого дня, каждого месяца

Скрипт у меня находится в виртуальном окружении, поэтому нужно указать на это, что нужно запускать Python в виртуальной среде, для этого напишем путь к python

Указываем путь к исполняемому файлу, в нашем случае к файлу parser_hh.py

В итоге наша инструкция означает следующее. Мы сообщаем cron, что хотим запускать файл parser_hh.py из виртуальной среды my_env каждую минуту.

Важно

Перед тем, как настраивать запуск файла. Нужно убедиться, что у файла есть доступ на исполнение, иначе ваш скрипт запущен не будет. Для того, чтобы разрешить скрипту исполняться используйте следующую команду

Если на вашем сервере есть панель управления isp manager, то можно настроить cron при помощи неё. Найдите ссылку планировщик, по сути это тот же крон, только в графическом интерфейсе.

plan