Запускаем Python-скрипт с помощью Cron на Linux
После того, как мы арендовали сервер и добавили пользователя, можем размещать на нём проекты. Настройка запуска скриптов по расписанию состоит из двух этапов:
- Создать виртуальное окружение и скопировать в него проект
- Настроить выполнение скрипта по расписанию
Настраиваем виртуальное окружение для проекта и переносим в него проект
На своей локальной машине создаём или обновляем файл с зависимостями:
pip freeze > requirements.txt
Дальше все работы будет проводить на сервере.
На сервере создаём папку для приложения и сразу в неё переходим:
mkdir ikea && cd ikea
Устанавливаем виртуальное окружение
virtualenv -p python3 venv
Если модуль virtualenv
не установлен:
pip3 install virtualenv
Копируем файлы в папку приложения. Папку со скриптом и requirements.txt
scp /mnt/c/Users/Дарья/YandexDisk/Python Projects/ikea/requirements.txt user@11.22.33.44:/home/lukin/projects/ikea/
Для копирования папки целиком указываем параметр -r
scp -r /mnt/c/Users/Дарья/YandexDisk/Python Projects/ikea/ikea user@11.22.33.44:/home/lukin/projects/ikea/
Если надо переименовать папку
mv староеимя новоеимя
Активируем виртуальное окружение и устанавливаем зависимости
source venv/bin/activate
pip install -r requirements.txt
Настраиваем расписание
Открываем планировщик
crontab -e
Задаём расписание. Расписание можно сгенерировать, например на cronmaker.com
0 */1 * * * cd /home/lukin/projects/ikea/ikea && /home/lukin/projects/ikea/venv/bin/python3 ikea_app.py
Альтернативная команда для запуска скрипта:
* * * * * /bin/bash -c 'source /home/lukin/projects/realty/venv/bin/activate;cd /home/lukin/projects/realty && python3 ikea_app.py'
Как понять что Cron срабатывает?
tail /var/log/syslog # получаем "хвост", последние 10 строк лог-файла