Как поставить python скрипт бота на vds vps сервер

Привет!

Вам необходимо пройти регистрацию что бы скачивать с нашего форума различные ресурсы и задавать вопросы.

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

Mr_vAHoooE

Писатель

Приветствую тебя уважаемый пользователь Na-Sha.Ru
Многие не знаю как поставить бота на сервер VDS/VPS для его работы 24/7
В данной статье мы рассмотрим это и научимся ставить бота на сервер

Для примера будем использовать комфортабельный и удобный ( на мой взгляд ) хостинг VDSina (Кликабельно)
Если есть желание скидки в 10% — вот партнерка Нажми на меня (Кликабельно)

1. Регистрация на VDS/VPS сервере

  1. Для начала «Регистрируемся» и заходим в «Личный кабинет».
  2. Нажимаем заветную кнопку «Создать сервер»
  3. Выбираем «Операционную систему» мы выбираем «Ubuntu 22.04».
  4. Выбираем «Тип сервера» мы выбираем «Стандартный» ( 1гб — Память, 30гб — Хранилище, 1core — Процессор, 32ТБ — трафик) Зажмотили бабок
  5. Выбираем локацию, я выбираю «Нидерланды» дабы у них политика по проще, и на законы России им фиолетово
  6. Выбираем «Автоматическая резервная копия» мне она не нужна и я отключаю эту функцию
  7. Дополнительный настройки сервера (hostname, ssh-key) я так-же отключаю данный параметр
  8. Нажимаем «Создать»
  1. Заходим в «Мои сервера»
  2. Находим «Наш сервер»
  3. Выписываем данные ( После его установки )
  • IP адрес сервера
  • Пользователь
  • Пароль

3. Что бы войти на сервер есть много программ, самая распространенная это PYTTY
4. Рассмотрим 3 способа установки скриптов на сервер

Читайте также:  Learn python in windows

4. Рассмотрим 3 способа установки скриптов на сервер

  1. Скачиваем и устанавливаем программу MobaXterm
  2. Нажимаем «Session», «SSH», в «Remote host» указываем Имя хоста(айпи) и жмём «OK».
  3. Возле текста «login as» вводим Имя пользователя, далее вводим пароль и подключаемся к серверу.
  4. Перемещаем папку с вашим скриптом или ботом в левое окно.
  1. Скачиваем и устанавливаем программу WinSCP
  2. Открываем «Параметры>Настройки>Интеграция>Программы», указываем путь к установленному раннее PuTTy и ставим галочки на «Помнить пароль сессии и передавать его PuTTy (SSH)» и «Открывать telnet-сессии в PuTTy для сессий FTP».
  3. Нажимаем на «Новое соединение», далее «Новое подключение», указываем имя хоста (айпи), имя пользователя, пароль и жмём «Войти».
  4. Перемещаем папку с вашим скриптом/ботом в правое окно.
  5. Жмём на кнопку открытия PuTTy окна.
  1. Скачиваем и устанавливаем программу FileZilla
  2. Указываем Хост (sftp://ВашАйпи) , имя пользователя, пароль и жмём «Быстрое соединение».
  3. Перемещаем папку с вашим скриптом или ботом в правое окно.
  4. Открываем ранее установленную программу PuTTY.
  5. После запуска, в поле «Host Name (or ip address)» указываем ранее полученный наш айпи адрес и нажимаем «Open».
  6. После открытия консоли, вводим своё имя пользователя (login as) и пароль (password). (При вводе пароля, символы не будут отображаться, не пугайтесь)

5. Теперь нам необходимо установить сам Python, Библиотеки, Утилиты.
(вместо python3.10, можете указать нужную вам версию питона)

sudo apt-get update sudo apt-get upgrade -y[B] (если вылезет окно, жмём enter)[/B] sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev curl software-properties-common -y sudo apt install software-properties-common sudo add-apt-repository ppa:deadsnakes/ppa (если вылезет окно, жмём enter) sudo apt-get install screen -y sudo apt-get install python3.10 -y sudo apt-get install python3-pip -y sudo apt-get install python3.10-dev -y sudo apt-get install python3.10-distutils -y python3.10 -m pip install pip --upgrade python3.10 -m pip install distlib --upgrade python3.10 -m pip install setuptools --upgrade
python3 -m pip install Название библиотеки

— Чтобы скрипт работал 24/7 и не выключался, нам нужно использовать раннее установленную утилиту screen.
Вводим команду screen -S любоеназваниесессии и жмём Enter.
После открытия окна screen, переходим в директорию со скриптом и прописываем:

— Скрипт запущен, чтобы свернуть окно screen, нажмите кнопки: CTRL + A + D
— Теперь можете смело закрывать PuTTy окно.

Наш скрипт успешно запущен

В: Как остановить/перезагрузить скрипт?
О: Прописываем команду screen -ls и получаем список скринов. Слева указаны айди скринов.
Прописываем screen kill АйдиСкрина далее запускаем новый скрин по инструкции выше.

В: При попытке подключения к screen’у пишет «There is no screen to be resumed matching».
О: Используйте screen -xr АйдиСкрина, вместо screen -r АйдиСкрина.

В: Как свернуть активный screen или выйти в главное меню?
О: Нажимаем сочетание клавиш CTRL + A + D.

В: Хочу установить несколько скриптов.
О: Выходим в главное меню если мы находимся в уже открытом screen’е. Прописываем команду screen -S ЛюбоеНазваниеСессии для открытия нового screen окна и запускаем свой скрипт.

В: Как сделать чтоб скрипт работал пока не упадет дедик или я сам его не закрою?
О: Когда запускаете скрипт вместо «python3 main.py» поставьте в конце символ «&» чтоб получилось «python3 main.py &»

Так-же хотел бы сказать что вместо утилиты «screen» мы можем использовать «Виртуальное Окружение»
Для каждого скрипта будут установлены свои библиотеки, они не будут конфликтовать друг с другом.
P.S: Например, если скрипт № 1 работает на библиотеке старой версии, а скрипту №2 нужна точно такая же, но новой версии.
Без использования вирт. окружения вы не сможете установить одну и ту же библиотеку 2-х разных версий.

Источник

Как поставить python скрипт бота на vds vps сервер

Данная статья рассматривает запуск Python-бота на VDS-сервере с Ubuntu 18.04. В статье опишем установку и настройку необходимых компонентов, а также создание службы systemd для непрерывной работы бота.

Первым шагом необходимо установить git для удобной работы с проектами:

Далее настроим SSH-ключ по статье «Как настроить SSH-ключ для GitHub», чтобы иметь возможность подключаться к удаленному репозиторию.

В Ubuntu 18.04 по умолчанию стоит Python 3.6.9. Поскольку наш бот написан на версии 3.9, то выполним ее установку.

add-apt-repository ppa:deadsnakes/ppa

Выполним установку Python 3.9 командой:

Она должна быть 3.9.16, как показано на скриншоте:

Однако предыдущая версия 3.6.9 по-прежнему доступна, и при запуске команд с использованием Python 3 будет использоваться именно она, а нам нужна более новая версия. Чтобы изменить интерпретатор по умолчанию, необходимо сначала проверить, какие версии Python уже используются в системе, для указания корректных путей далее по инструкции, выполнив эту команду:

Результат выполненной команды представлен ниже:

Для использования новой версии 3.9.16 вместо 3.6.9 добавим альтернативы:

update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2

Проверим результат выполненных команд:

update-alternatives --list python3

Для настройки выбора версии выполним команду config:

update-alternatives --config python3

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

Теперь для команды Python3 будет всегда использоваться версия 3.9.16. Проверим ее:

Вывод работы команды представлен на скриншоте ниже:

Установим pip3 при помощи следующей команды:

И дополнительно пакет «python3.9-distutils»:

apt install python3.9-distutils

Установим виртуальное окружение:

Дополнительно установим venv lib для Python 3.9

apt install python3.9-dev python3.9-venv

В целях безопасности для запуска нашего бота создадим нового пользователя:

Добавим нашего пользователя с именем «PYbot» в группу «sudo»:

После создания нового пользователя необходимо перезайти на VDS-сервер под созданной учеткой.

Далее в корень папки PYbot склонируем свой репозиторий при помощи команды:

git clone git@github.com:Deimos715/python-bot.git

Перейдем в папку «python-bot»:

Добавим в наш проект виртуальное окружение:

Если необходимо выполнить его деактивацию, команда будет следующей:

Импортируем все зависимости нашего проекта из файла requirements.txt:

pip3 install -r requirements.txt

Наш бот почти установлен, запускаем его:

Хотя бот будет функционировать, он перестанет отвечать после завершения сеанса работы с VDS-сервером. Чтобы решить эту проблему, мы воспользуемся системой инициализации systemd, которая широко используется в дистрибутивах Linux. Если вам интересно узнать больше о systemd, вы можете изучить наши статьи «Как создавать файлы модулей systemd» и «Как работать с systemd».

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

nano /lib/systemd/system/bot.service

Со следующими настройками:

[Unit] Description=python-bot After=network.target [Service] Type=simple User=PYbot ExecStart=/PYbot/python-bot/venv/bin/python3 /PYbot/python-bot/bot.py ExecReload=/PYbot/python-bot/bot.py WorkingDirectory=/PYbot/python-bot/ KillMode=process Restart=always RestartSec=5 [Install] WantedBy=multi-user.target

Описание важных строек службы:

— Description — описание службы.

— User — пользователь из-под которого запущена служба.

— ExecStart и ExecReload — это команды для запуска и перезапуска бота.

— WorkingDirectory — путь к папке в которой файл запуска bot.py.

Для запуска службы выполним 2 команды:

systemctl enable bot.service
systemctl start bot.service

После запуска наш бот будет функционировать без перерыва даже после закрытия терминала. Кроме того, после перезагрузки системы бот автоматически запустится через 5 секунд в соответствии с параметром RestartSec.

Для проверки статусов и логов можно выполнить следующие команды:

systemctl status bot.service

Источник

Как запустить Python Telegram бота на VPS

Как запустить Python Telegram бота на VPS

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

Телеграм бот

#main.py import telebot bot = telebot.TeleBot("ТОКЕН") @bot.message_handler(func=lambda message: message.text.lower() in ['привет', 'здравствуйте']) def send_welcome(message): bot.reply_to(message, "Здравствуйте!") @bot.message_handler(func=lambda message: True) def echo_all(message): bot.reply_to(message, 'Я тебя не понимаю(') bot.infinity_polling()

Виртуальный сервер

Для демонстрации я буду использовать виртуальный сервер от Beget стоимостью 210 рублей в месяц. Вы можете использовать другого хостинг провайдера, или выбрать другую конфигурацию, в зависимости от вашего проекта.

Как запустить Python Telegram бота на VPS

Подключение к виртуальной машине

После того как вы создали VPS у вас откроется панель управления, где вы можете скопировать IP адрес машины и подключаться к ней по SSH.

Как запустить Python Telegram бота на VPS

Для этого можно использовать программу PuTTY или клиент OpenSSH, который входит в состав Windows 10. Для подключения по SSH выполните следующую команду:

Подготовка сервера

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

sudo apt update sudo apt upgrade

Загрузка и запуск бота

Перейдите в каталог home и создайте папку для вашего проекта выполнив команды.

cd /home mkdir ramziv_bot cd ramziv_bot

Зайдите панель управления VPS и откройте Файловый менеджер.

Как запустить Python Telegram бота на VPS

Загрузите файлы вашего проекта на сервер, в моем случаи это только один файл main.py .

Как запустить Python Telegram бота на VPS

Установите зависимости вашего проекта, и запустите бота.

Примечание: Ubuntu 20.04 поставляется с установленной Python 3.8 из коробки, если для вашего проекта нужна другая версия, установите ее или используйте другую версию дистрибутива.

pip install pyTelegramBotAPI python3 main.py 

Теперь перейдите в Телеграм и протестируйте работу.

Как запустить Python Telegram бота на VPS

Авто запуск и перезапуск телеграм бота

Создайте systemd службу для бота.

sudo nano /lib/systemd/system/ramziv_bot.service
[Unit] Description=Ramziv - Telegram Bot After=syslog.target After=network.target [Service] Type=simple WorkingDirectory=/home/ramziv_bot/ ExecStart=/usr/bin/python3 /home/ramziv_bot/main.py RestartSec=60 Restart=always [Install] WantedBy=multi-user.target

Выполните эти две команды что бы запустить службу.

sudo systemctl enable ramziv_bot sudo systemctl start ramziv_bot

Ваш бот запушен. Перейдите в Телеграм и убедитесь в этом.

Заключение

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

sudo journalctl -u ramziv_bot.service #Вывод #Jun 13 12:35:31 objmnuqxoa python3[1069]: File "/home/ramziv_bot/main.py", line 7, in send_welcome #Jun 13 12:35:31 objmnuqxoa python3[1069]: number = 1/0 #Jun 13 12:35:31 objmnuqxoa python3[1069]: ZeroDivisionError: division by zero

Источник

Оцените статью