LasleyChao
Команда форума
LasleyChao
- 4 Апр 2019
- 1,914
- 14,956
Хелоу!
Из этой статьи вы узнаете как запустить Telegram бота на виртуальном сервере, и настроить службу для его авто запуска и перезапуска.
Пример бота:
Виртуальный сервер
Для демонстрации я буду использовать виртуальный сервер от ТЫК стоимостью 210 рублей в месяц. Вы можете использовать другого хостинг провайдера, или выбрать другую конфигурацию, в зависимости от вашего проекта.
Подключение к виртуальной машине
После того как вы создали VPS у вас откроется панель управления, где вы можете скопировать IP адрес машины и подключаться к ней по SSH.
Для этого можно использовать программу PuTTY ТЫК или клиент OpenSSH, который входит в состав Windows 10. Для подключения по SSH выполните следующую команду:
И введите пароль который вы указали при создании VPS. (пароль может не отображаться, не пугайтесь)
Подготовка сервера
После того как вы подключились к серверу, выполните команды которые обновят списки, и устаревшие пакеты до последней версии.
Загрузка и запуск бота
Перейдите в каталог home и создайте папку для вашего проекта выполнив команды.
Зайдите панель управления VPS и откройте Файловый менеджер.
Загрузите файлы вашего проекта на сервер, в моем случае- это только один файл main.py.
Установите зависимости вашего проекта, и запустите бота.
Примечание: Ubuntu 20.04 поставляется с установленной Python 3.8 из коробки, если для вашего проекта нужна другая версия, установите ее или используйте другую версию дистрибутива.
Теперь перейдите в Телеграм и протестируйте работу:
Работает.
Авто запуск и перезапуск телеграм бота
Создайте systemd службу для бота.
С конфигурацией:
Нажмите CTRL+S и CTRL+X что бы сохранить и выйти.
Выполните эти две команды что бы запустить службу:
Ваш бот запущен. Перейдите в Телеграм и убедитесь в этом.
Заключение
Ваш бот будет всегда запускаться при старте системы, и перезапускается при возникновении ошибки. Для примера вы можете специально вызвать исключения в одной из функций обернутой обработчиком, и отследить ее в журнале командой:
ИЗИ
Из этой статьи вы узнаете как запустить 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()
Виртуальный сервер
Для демонстрации я буду использовать виртуальный сервер от ТЫК стоимостью 210 рублей в месяц. Вы можете использовать другого хостинг провайдера, или выбрать другую конфигурацию, в зависимости от вашего проекта.
Подключение к виртуальной машине
После того как вы создали VPS у вас откроется панель управления, где вы можете скопировать IP адрес машины и подключаться к ней по SSH.
Для этого можно использовать программу PuTTY ТЫК или клиент OpenSSH, который входит в состав Windows 10. Для подключения по SSH выполните следующую команду:
Код:
ssh root@213.139.209.81
Подготовка сервера
После того как вы подключились к серверу, выполните команды которые обновят списки, и устаревшие пакеты до последней версии.
Код:
sudo apt update
sudo apt upgrade
Загрузка и запуск бота
Перейдите в каталог home и создайте папку для вашего проекта выполнив команды.
Код:
cd /home
mkdir ramziv_bot
cd ramziv_bot
Загрузите файлы вашего проекта на сервер, в моем случае- это только один файл 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
ИЗИ