Перейти к содержимому

Как запустить скрипт python на хостинге

  • автор:

Где запустить python скрипт?

Добрый день! Есть скрипт на python, собирает статистику. Где можно такие скрипты запускать? Бюджетно, не поднимая vds\vps. Нагрузка у него минимальна, держать ноутбук включенным ночью желания нет.

На сайте с 27.02.2008
19 марта 2017, 13:45

Сайт-билдер:
Добрый день!

Есть скрипт на python, собирает статистику. Где можно такие скрипты запускать? Бюджетно, не поднимая vds\vps. Нагрузка у него минимальна, держать ноутбук включенным ночью желания нет.

На сайте с 07.06.2014
19 марта 2017, 14:02

Сайт-билдер:
Добрый день!

Есть скрипт на python, собирает статистику. Где можно такие скрипты запускать? Бюджетно, не поднимая vds\vps. Нагрузка у него минимальна, держать ноутбук включенным ночью желания нет.

Python как CGI-скрипт или через CLI? Если говорить о CLI, то практически на любом виртуальном хостинге установлен Python, но поддержка в этом плане ограничена, то есть не каждый хостинг установит вам необходимый модуль и тем более сменит версию питона. Поэтому под такие цели обычно принято брать VPS, чтобы быть себе хозяином. Посмотрите в сторону очень дешевых VPS.

Как запустить Python скрипт на хостинге/виртуальном сервере?

Написал небольшой скрипт, который парсит обьявления на ОЛХ по параметрам. Если появляется новое обьявление скрипт отправляет мне его данные в телеграмм. В пайтоне не силен, работаю на другом ЯП, сделал уведомлялку чтоб снять жилье. Суть вопроса в том, что скрипт работает только локально и это не совсем удобно, ведь ноутбук у меня не включен 24/7. Есть бесплатный хостинг beget, возможно ли на нем или на другом хостинге запустить скрипт чтоб он работал постоянно? Без cron и прочих планировщиков задач, в скрипте стоит while: True . sleep(120). то есть скрипт каждые две минуты проверяет не появилось ли новое обьявление.

  • Вопрос задан более трёх лет назад
  • 10851 просмотр

Запускаем Python-скрипт на сервере, чтобы он работал всё время

В итоге мы остановились на том, что научились запускать скрипт на сервере, чтобы он работал после разрыва соединения. Но это половинчатое решение: если мы перезапустим сервер, то бот остановится. Иногда сервер перезагружается сам на стороне провайдера, например при плановых технических работах. И тогда наши скрипты умирают.

Сейчас нам нужно такое решение, чтобы бот автоматически перезапускался при любых обстоятельствах. Этим и займёмся.

Коротко — суть

Чтобы было понятно, что тут происходит, вот короткая версия:

  1. Настраиваем удалённый доступ к серверу.
  2. Создаём папку и заливаем в неё скрипт, который в итоге должен будет работать всё время.
  3. Создаём у себя на компьютере файл службы — он управляет настройками автозапуска скрипта.
  4. Отправляем файл службы на сервер.
  5. Обновляем на сервере данные обо всех службах и запускаем нашу.

Теперь подробно про каждый шаг.

Предварительная работа

Основное, что мы будем использовать, — это удалённый доступ к серверу по SSH. Для этого он должен быть включён на самом сервере, и там же можно сразу посмотреть параметры доступа. Например, для работы нашего учебного сервера мы пользуемся услугами SpaceWeb, где доступ по SSH включается из панели управления:

Запускаем Python-скрипт на сервере, чтобы он работал всё время

Запускаем SSH и проверяем, что соединение устанавливается. Чтобы соединиться, нужно написать в терминале команду ssh имя_пользователя@адрес_сервера, после чего нажать Enter. Сервер спросит пароль, и, если мы его правильно ввели, нас пустят.

Запускаем Python-скрипт на сервере, чтобы он работал всё время

Мы видим приветствие сервера, значит, всё прошло хорошо и мы можем управлять им со своего компьютера. Для этого нужно будет писать в терминал команды и реагировать на то, что тебе ответит сервер.

Отправляем скрипт на сервер

Чтобы не захламлять корневую папку на сервере, создадим новую папку bot. Вот эта команда:

После этого открываем новую командную строку на компьютере, а не на сервере. Для этого нужно запустить ещё одно окно терминала. Там пишем такое:

scp /Users/mihailpolanin/Downloads/bot.py mpolyanin@77.222.61.9:bot

Вот что это означает:

  • scp — копирование файла по SSH;
  • /Users/mihailpolanin/Downloads/bot.py — это путь к нашему скрипту на компьютере. Его замените на то, что будет у вас;
  • mpolyanin@77.222.61.9 — адрес сервера и логин пользователя. Это тоже замените на ваши данные;
  • : — отделяет сервер от папки;
  • bot — название папки, которую мы только что создали на сервере.

Лайфхак: чтобы не писать вручную пути до файлов на локальном компьютере, можно перед началом ввода пути просто перетащить файл в окно терминала. Терминал поймёт, что вы имели в виду «путь до этого файла», и подставит данные сам.

После запуска у нас попросят пароль от сервера — вводим его и видим статистику отправки файла:

Запускаем Python-скрипт на сервере, чтобы он работал всё время

Переключаемся обратно в SSH-соединение и проверяем, что файл скопировался и лежит в папке. Для этого вводим две команды: первая перейдёт в эту папку, а вторая покажет её содержимое:

Запускаем Python-скрипт на сервере, чтобы он работал всё время

Готовим файл для работы службы

Нам нужно, чтобы система сама следила за тем, чтобы скрипт работал всё время и запускался после перезагрузки. В Linux за это отвечают службы — одну из таких служб мы сейчас и сделаем.

Создаём на компьютере новый файл bot.service и вставляем туда такое:

[Unit] Description=tg-bot After=multi-user.target [Service] User=root Group=root Type=simple Restart=always ExecStart=/usr/bin/python3 /bot/bot.py [Install] WantedBy=multi-user.target

Два самых важных параметра — это путь к нашему скрипту (/bot/bot.py) и название службы: tg-bot. Название может быть любым, а вот путь к скрипту нужно указать точно.

Теперь закидываем этот файл на сервер в папку /usr/lib/systemd/system. Для этого в командной строке компьютера пишем:

scp /Users/mihailpolanin/Downloads/bot.service mpolyanin@77.222.61.9:/usr/lib/systemd/system

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

Запуск службы

Теперь нам нужно перезагрузить все службы, чтобы наш файл тоже попал в общий список для запуска. Открываем SSH-консоль и выполняем там такую команду:

sudo systemctl daemon-reload

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

sudo systemctl enable bot.service

Всё, можно запускать наш телеграм-бот как службу. Вот основные команды для этого:

  • sudo systemctl start bot.service — запустить службу;
  • sudo systemctl stop bot.service — остановить службу;
  • sudo systemctl status bot.service — посмотреть статус, работает или нет.

Что дальше

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

Любишь Python? Зарабатывай на нём!
Изучите самый модный язык программирования и станьте крутым бэкенд-разработчиком. Старт — бесплатно.

Любишь Python? Зарабатывай на нём! Любишь Python? Зарабатывай на нём! Любишь Python? Зарабатывай на нём! Любишь Python? Зарабатывай на нём!

Получите ИТ-профессию

В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.

Запуск Python скрипта на хостинге

Подскажите как запустить python скрипт на хостинге c установкой pip и дополняющих модулей для скрипта.

Также чтобы не было ошибок в import, так как сам скрипт находится в папке cgi-bin.

Работа с версией python 3.6

13.10.2020 07:45
Пользователь ID 129965
Для комментирования вопроса нужно зарегистрироваться или авторизоваться.
ОТВЕТЫ НА ВОПРОС (1)
Сотрудник Алексей Таран
13.10.2020 08:22
Для комментирования ответа нужно зарегистрироваться или авторизоваться.
Для ответа нужно зарегистрироваться или авторизоваться.

Перенос ответа

Пожалуйста, выберите ответ в который нужно перенести комментарий:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *