- 20.06.2022
- 23 848
- 218
- 36
- Награды
- 10
- Пол
- Муж.
Репутация:
- Автор темы
- Администратор
- Модератор
- Команда форума
- #1
Приветствую всех. Из этой статьи вы узнаете как запустить Telegram бота на виртуальном сервере, и настроить службу для его авто запуска и перезапуска.
Для этого можно использовать программу PuTTY или клиент OpenSSH, который входит в состав Windows 10. Для подключения по SSH выполните следующую команду:
И введите пароль который вы указали при создании VPS.
Зайдите панель управления VPS и откройте Файловый менеджер.
Загрузите файлы вашего проекта на сервер, в моем случаи это только один файл main.py.
Установите зависимости вашего проекта, и запустите бота.
Примечание: Ubuntu 20.04 поставляется с установленной Python 3.8 из коробки, если для вашего проекта нужна другая версия, установите ее или используйте другую версию дистрибутива.
Теперь перейдите в Телеграм и протестируйте работу.
Работает.
С конфигурацией:
Нажмите CTRL+S и CTRL+X что бы сохранить и выйти.
Выполните эти две команды что бы запустить службу.
Ваш бот запушен. Перейдите в Телеграм и убедитесь в этом.
Телеграм бот
Python:
#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 рублей в месяц. Вы можете использовать другого хостинг провайдера, или выбрать другую конфигурацию, в зависимости от вашего проекта.Подключение к виртуальной машине
После того как вы создали VPS у вас откроется панель управления, где вы можете скопировать IP адрес машины и подключаться к ней по SSH.Для этого можно использовать программу PuTTY или клиент OpenSSH, который входит в состав Windows 10. Для подключения по SSH выполните следующую команду:
И введите пароль который вы указали при создании VPS.
Подготовка сервера
После того как вы подключились к серверу, выполните команды которые обновят списки, и устаревшие пакеты до последней версии.
Код:
sudo apt update
sudo apt upgrade
Загрузка и запуск бота
Перейдите в каталог home и создайте папку для вашего проекта выполнив команды.
Код:
cd /home
mkdir ramziv_bot
cd ramziv_bot
Зайдите панель управления VPS и откройте Файловый менеджер.
Загрузите файлы вашего проекта на сервер, в моем случаи это только один файл main.py.
Установите зависимости вашего проекта, и запустите бота.
Примечание: Ubuntu 20.04 поставляется с установленной Python 3.8 из коробки, если для вашего проекта нужна другая версия, установите ее или используйте другую версию дистрибутива.
Код:
pip install pyTelegramBotAPI
python3 main.py
Теперь перейдите в Телеграм и протестируйте работу.
Работает.
Авто запуск и перезапуск телеграм бота
Создайте 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
Нажмите CTRL+S и CTRL+X что бы сохранить и выйти.
Выполните эти две команды что бы запустить службу.
Код:
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
Последние темы в этом разделе:
- [Alex Erofeev] [Stepik] JavaScript: самый быстрый курс (2024)
- [Михаил Русаков] Написание лайфхаков на Python (2021)
- Пишем DDOS скрипт на Python
- [Саид Магомедов] Python. Микросервисы. Backend на FastAPI [Stepik] (2024)
- Как написать чат-бота на python
- Пишем скрипт по парсингу ответов из gdz.ru
- [Udemy] Кибербезопасность: тестирование на проникновение с помощью Python 3 (2022)
- [Udemy] [ENG] Продвинутый ИИ - глубокое обучение с подкреплением в Python (2024)
- Создание бесплатного API для генерации изображений, используя перехваченные запросы Flux
- [Андрей Сумин] [Stepik] Java с нуля до Junior + Подготовка к собеседованию (2024)