Как настроить автоматический запуск python скрипта на сервере под управлением linux?
У вас есть скрипт, с помощью которого вы получаете данные каждый день. Например из API яндекс директ или google analytics. Вы хотите автоматизировать это действие, вам надоело вручную каждый день запускать скрипт. Для этого в linux есть планировщик задач cron.
Cron — это сервис, как и большинство других сервисов Linux, он запускается при старте системы и работает в фоновом режиме. Его основная задача выполнять нужные процессы в нужное время. Регулярные действия описываются инструкциями, помещенными в файлы crontab и в специальные директории.
Для того, чтобы отредактировать файл crontab нужно ввести в консоль команду
1 |
crontab -e |
Откроется файл crontab
Инструкции для cron имеют формат
минута час день месяц день_недели /путь/к/исполняемому/файлу
Рассмотрим пример. Скрипт получает данные с сайта hh.ru. Настроим его автоматический запуск каждую минуту, для этого пропишем в crontab инструкцию
1 |
*/1 * * * * /root/environments/my_env/bin/python /root/environments/my_env/parser_hh.py |
Разберем, что значит каждая часть инструкции
1 |
*/1 * * * * |
здесь мы говорим, что хотим запускать скрипт каждую минуту, каждого часа, каждого дня, каждого месяца
1 |
/root/environments/my_env/bin/python |
Скрипт у меня находится в виртуальном окружении, поэтому нужно указать на это, что нужно запускать Python в виртуальной среде, для этого напишем путь к python
1 |
/root/environments/my_env/parser_hh.py |
Указываем путь к исполняемому файлу, в нашем случае к файлу parser_hh.py
В итоге наша инструкция означает следующее. Мы сообщаем cron, что хотим запускать файл parser_hh.py из виртуальной среды my_env каждую минуту.
Важно
Перед тем, как настраивать запуск файла. Нужно убедиться, что у файла есть доступ на исполнение, иначе ваш скрипт запущен не будет. Для того, чтобы разрешить скрипту исполняться используйте следующую команду
1 |
chmod -x file |
Если на вашем сервере есть панель управления isp manager, то можно настроить cron при помощи неё. Найдите ссылку планировщик, по сути это тот же крон, только в графическом интерфейсе.