āĻĒāĻžāĻ‡āĻĨāĻ¨ā§‡ āĻŸā§‡āĻ˛āĻŋāĻ—ā§āĻ°āĻžāĻŽ āĻŦāĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸

āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻāĻŽāĻ¨ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĨāĻžāĻ•ā§‡ āĻ¯āĻ–āĻ¨ āĻāĻ–āĻžāĻ¨ā§‡ āĻāĻŦāĻ‚ āĻāĻ–āĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, SSH āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ• āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻ¨āĻ¯āĻŧ, āĻ•āĻžāĻ°āĻŖ āĻ†āĻĒāĻ¨āĻžāĻ° āĻšāĻžāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ SSH āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ, āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ āĻŋāĻ•āĻžāĻ¨āĻž, āĻŦāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€/āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¸āĻ‚āĻŽāĻŋāĻļā§āĻ°āĻŖ āĻ¨āĻžāĻ“ āĻĨāĻžāĻ•āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ†āĻ›ā§‡ Webmin, āĻ¯āĻž āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ¨āĻ•ā§‡ āĻ¸āĻšāĻœ āĻ•āĻ°ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻŋ āĻ¤āĻžāĻ¤ā§āĻ•ā§āĻˇāĻŖāĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤

āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻšāĻœ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ¯āĻĨāĻž, āĻāĻ•āĻŸāĻŋ āĻŸā§‡āĻ˛āĻŋāĻ—ā§āĻ°āĻžāĻŽ āĻŦāĻŸ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻ¯āĻž, āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻšāĻžāĻ˛ā§ āĻšāĻ˛ā§‡, āĻāĻŸāĻŋāĻ¤ā§‡ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻ—ā§āĻ˛āĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻŦā§‡ āĻāĻŦāĻ‚ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻŦā§‡āĨ¤ āĻĒāĻĄāĻŧāĻžāĻļā§āĻ¨āĻž āĻ•āĻ°ā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻāĻ‡ āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡, āĻ†āĻŽāĻŋ āĻŦā§āĻāĻ¤ā§‡ āĻĒā§‡āĻ°ā§‡āĻ›āĻŋ āĻ¯ā§‡ āĻ•ā§‡āĻ‰ āĻāĻ–āĻ¨āĻ“ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°ā§‡āĻ¨āĻŋāĨ¤

āĻ†āĻŽāĻŋ āĻ‰āĻŦā§āĻ¨ā§āĻŸā§ 16.04 āĻ āĻāĻ‡ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻ¤āĻŦā§‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ¤āĻ°āĻŖā§‡ āĻāĻžāĻŽā§‡āĻ˛āĻž-āĻŽā§āĻ•ā§āĻ¤ āĻ°āĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻŋ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤

āĻŦāĻŸ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨

@BotFather-āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŸ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ†āĻŽāĻ°āĻž āĻ¤āĻžāĻ•ā§‡ āĻĒāĻžāĻ āĻžāĻ‡ /newbot āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻĒāĻžāĻ ā§āĻ¯ā§‡āĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŸ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ†āĻ‡āĻĄāĻŋ āĻ˛āĻžāĻ—āĻŦā§‡ (āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻĨā§‡āĻ•ā§‡ @āĻ‡āĻ‰āĻœāĻžāĻ°āĻŋāĻ¨āĻĢā§‹āĻŦāĻŸ).

āĻĒāĻžāĻ‡āĻĨāĻ¨ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĻŋ

āĻŦāĻŸ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻ°āĻž āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦ telebot (pip install pytelegrambotapi) āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ subprocess āĻ†āĻŽāĻ°āĻž āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻšāĻžāĻ˛āĻžāĻŦāĨ¤

āĻŦāĻŸ āĻ˛āĻžā§āĻš

āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ bot.py āĻĢāĻžāĻ‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨:
nano bot.py

āĻāĻŦāĻ‚ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻāĻ¤ā§‡ āĻĒā§‡āĻ¸ā§āĻŸ āĻ•āĻ°ā§āĻ¨:

from subprocess import check_output
import telebot
import time

bot = telebot.TeleBot("XXXXXXXXX:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")#Ņ‚ĐžĐēĐĩĐŊ йОŅ‚Đ°
user_id = 0 #id ваŅˆĐĩĐŗĐž Đ°ĐēĐēĐ°ŅƒĐŊŅ‚Đ°
@bot.message_handler(content_types=["text"])
def main(message):
   if (user_id == message.chat.id): #ĐŋŅ€ĐžĐ˛ĐĩŅ€ŅĐĩĐŧ, Ņ‡Ņ‚Đž ĐŋиŅˆĐĩŅ‚ иĐŧĐĩĐŊĐŊĐž вĐģĐ°Đ´ĐĩĐģĐĩŅ†
      comand = message.text  #Ņ‚ĐĩĐēŅŅ‚ ŅĐžĐžĐąŅ‰ĐĩĐŊиŅ
      try: #ĐĩŅĐģи ĐēĐžĐŧĐ°ĐŊĐ´Đ° ĐŊĐĩвŅ‹ĐŋĐžĐģĐŊŅĐĩĐŧĐ°Ņ - check_output вŅ‹Đ´Đ°ŅŅ‚ exception
         bot.send_message(message.chat.id, check_output(comand, shell = True))
      except:
         bot.send_message(message.chat.id, "Invalid input") #ĐĩŅĐģи ĐēĐžĐŧĐ°ĐŊĐ´Đ° ĐŊĐĩĐēĐžŅ€Ņ€ĐĩĐēŅ‚ĐŊĐ°
if __name__ == '__main__':
    while True:
        try:#дОйавĐģŅĐĩĐŧ try Đ´ĐģŅ ĐąĐĩŅĐŋĐĩŅ€ĐĩйОКĐŊОК Ņ€Đ°ĐąĐžŅ‚Ņ‹
            bot.polling(none_stop=True)#СаĐŋŅƒŅĐē йОŅ‚Đ°
        except:
            time.sleep(10)#в ŅĐģŅƒŅ‡Đ°Đĩ ĐŋĐ°Đ´ĐĩĐŊиŅ

āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋāĻ¤ā§‡ āĻŦāĻŸ āĻŸā§‹āĻ•ā§‡āĻ¨āĻ•ā§‡ @BotFather āĻĻā§āĻŦāĻžāĻ°āĻž āĻœāĻžāĻ°āĻŋ āĻ•āĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻŦāĻ‚ user_id āĻ†āĻĒāĻ¨āĻžāĻ° āĻ…ā§āĻ¯āĻžāĻ•āĻžāĻ‰āĻ¨ā§āĻŸā§‡āĻ° āĻ†āĻ‡āĻĄāĻŋ āĻŽāĻžāĻ¨ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻŋāĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ†āĻ‡āĻĄāĻŋ āĻšā§‡āĻ• āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¯āĻžāĻ¤ā§‡ āĻŦāĻŸ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻĢāĻžāĻ‚āĻļāĻ¨ check_output() āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤

āĻāĻŸāĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦāĻŸ āĻļā§āĻ°ā§ āĻ…āĻŦāĻļā§‡āĻˇ. āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āĻ°āĻŋ screen (sudo apt-get install screen):

screen -dmS ServerBot python3 bot.py

(āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ "āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻŦāĻŸ" āĻšāĻ˛ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸ āĻ†āĻ‡āĻĄāĻŋ)

āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻĒāĻŸāĻ­ā§‚āĻŽāĻŋāĻ¤ā§‡ āĻšāĻ˛āĻŦā§‡āĨ¤ āĻ†āĻ¸ā§āĻ¨ āĻŦāĻŸāĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻĨā§‹āĻĒāĻ•āĻĨāĻ¨ā§‡ āĻ¯āĻžāĻ‡ āĻāĻŦāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡ āĻĻā§‡āĻ–āĻŋ āĻ¯ā§‡ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ¯ā§‡āĻŽāĻ¨ āĻ‰āĻšāĻŋāĻ¤ āĻ¤ā§‡āĻŽāĻ¨ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡:

āĻĒāĻžāĻ‡āĻĨāĻ¨ā§‡ āĻŸā§‡āĻ˛āĻŋāĻ—ā§āĻ°āĻžāĻŽ āĻŦāĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸

āĻ…āĻ­āĻŋāĻ¨āĻ¨ā§āĻĻāĻ¨! āĻŦāĻŸ āĻāĻŸāĻŋāĻ¤ā§‡ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ–āĻ¨, āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻļā§āĻ§ā§ āĻŦāĻŸāĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ˛āĻžāĻĒ āĻ–ā§āĻ˛āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

āĻ†āĻĻā§‡āĻļā§‡āĻ° āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ

āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡, āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ•āĻ‡ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ…āĻ¤āĻāĻŦ, āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¨āĻž āĻĒāĻžāĻ āĻŋāĻ¯āĻŧā§‡ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°āĻž āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ–ā§āĻŦāĻ‡ āĻ…āĻĒā§āĻ°āĻšāĻ˛āĻŋāĻ¤ āĻšāĻŦā§‡āĨ¤

āĻ†āĻŽāĻ°āĻž āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻ‡āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻŦā§‹āĻ¤āĻžāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻŸāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻŦ:

from subprocess import check_output
import telebot
from telebot import types #ДобавĐģŅĐĩĐŧ иĐŧĐŋĐžŅ€Ņ‚ ĐēĐŊĐžĐŋĐžĐē
import time

bot = telebot.TeleBot("XXXXXXXXX:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")#ĐĸĐžĐēĐĩĐŊ йОŅ‚Đ°
user_id = 0 #id ваŅˆĐĩĐŗĐž Đ°ĐēĐēĐ°ŅƒĐŊŅ‚Đ°
@bot.message_handler(content_types=["text"])
def main(message):
   if (user_id == message.chat.id): #ĐŋŅ€ĐžĐ˛ĐĩŅ€ŅĐĩĐŧ, Ņ‡Ņ‚Đž ĐŋиŅˆĐĩŅ‚ иĐŧĐĩĐŊĐŊĐž вĐģĐ°Đ´ĐĩĐģĐĩŅ†
      comand = message.text  #Ņ‚ĐĩĐēŅŅ‚ ŅĐžĐžĐąŅ‰ĐĩĐŊиŅ
      markup = types.InlineKeyboardMarkup() #ŅĐžĐˇĐ´Đ°ĐĩĐŧ ĐēĐģавиаŅ‚ŅƒŅ€Ņƒ
      button = types.InlineKeyboardButton(text="ПовŅ‚ĐžŅ€Đ¸Ņ‚ŅŒ", callback_data=comand) #ŅĐžĐˇĐ´Đ°ĐĩĐŧ ĐēĐŊĐžĐŋĐēŅƒ
      markup.add(button) #дОйавĐģŅĐĩĐŧ ĐēĐŊĐžĐŋĐēŅƒ в ĐēĐģавиаŅ‚ŅƒŅ€Ņƒ
      try: #ĐĩŅĐģи ĐēĐžĐŧĐ°ĐŊĐ´Đ° ĐŊĐĩвŅ‹ĐŋĐžĐģĐŊŅĐĩĐŧĐ°Ņ - check_output вŅ‹Đ´Đ°ŅŅ‚ exception
         bot.send_message(user_id, check_output(comand, shell = True,  reply_markup = markup)) #вŅ‹ĐˇŅ‹Đ˛Đ°ĐĩĐŧ ĐēĐžĐŧĐ°ĐŊĐ´Ņƒ и ĐžŅ‚ĐŋŅ€Đ°Đ˛ĐģŅĐĩĐŧ ŅĐžĐžĐąŅ‰ĐĩĐŊиĐĩ Ņ Ņ€ĐĩСŅƒĐģŅŒŅ‚Đ°Ņ‚ĐžĐŧ
      except:
         bot.send_message(user_id, "Invalid input") #ĐĩŅĐģи ĐēĐžĐŧĐ°ĐŊĐ´Đ° ĐŊĐĩĐēĐžŅ€Ņ€ĐĩĐēŅ‚ĐŊĐ°

@bot.callback_query_handler(func=lambda call: True)
def callback(call):
  comand = call.data #ŅŅ‡Đ¸Ņ‚Ņ‹Đ˛Đ°ĐĩĐŧ ĐēĐžĐŧĐ°ĐŊĐ´Ņƒ иС ĐŋĐžĐģŅ ĐēĐŊĐžĐŋĐēи data
  try:#ĐĩŅĐģи ĐēĐžĐŧĐ°ĐŊĐ´Đ° ĐŊĐĩ вŅ‹ĐŋĐžĐģĐŊŅĐĩĐŧĐ°Ņ - check_output вŅ‹Đ´Đ°ŅŅ‚ exception
     markup = types.InlineKeyboardMarkup() #ŅĐžĐˇĐ´Đ°ĐĩĐŧ ĐēĐģавиаŅ‚ŅƒŅ€Ņƒ
     button = types.InlineKeyboardButton(text="ПовŅ‚ĐžŅ€Đ¸Ņ‚ŅŒ", callback_data=comand) #ŅĐžĐˇĐ´Đ°ĐĩĐŧ ĐēĐŊĐžĐŋĐēŅƒ и в data ĐŋĐĩŅ€ĐĩĐ´Đ°Ņ‘Đŧ ĐēĐžĐŧĐ°ĐŊĐ´Ņƒ
     markup.add(button) #дОйавĐģŅĐĩĐŧ ĐēĐŊĐžĐŋĐēŅƒ в ĐēĐģавиаŅ‚ŅƒŅ€Ņƒ
     bot.send_message(user_id, check_output(comand, shell = True), reply_markup = markup) #вŅ‹ĐˇŅ‹Đ˛Đ°ĐĩĐŧ ĐēĐžĐŧĐ°ĐŊĐ´Ņƒ и ĐžŅ‚ĐŋŅ€Đ°Đ˛ĐģŅĐĩĐŧ ŅĐžĐžĐąŅ‰ĐĩĐŊиĐĩ Ņ Ņ€ĐĩСŅƒĐģŅŒŅ‚Đ°Ņ‚ĐžĐŧ
  except:
     bot.send_message(user_id, "Invalid input") #ĐĩŅĐģи ĐēĐžĐŧĐ°ĐŊĐ´Đ° ĐŊĐĩĐēĐžŅ€Ņ€ĐĩĐēŅ‚ĐŊĐ°

if __name__ == '__main__':
    while True:
        try:#дОйавĐģŅĐĩĐŧ try Đ´ĐģŅ ĐąĐĩŅĐŋĐĩŅ€ĐĩйОКĐŊОК Ņ€Đ°ĐąĐžŅ‚Ņ‹
            bot.polling(none_stop=True)#СаĐŋŅƒŅĐē йОŅ‚Đ°
        except:
            time.sleep(10)#в ŅĐģŅƒŅ‡Đ°Đĩ ĐŋĐ°Đ´ĐĩĐŊиŅ

āĻŦāĻŸ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡:

killall python3
screen -dmS ServerBot python3 bot.py

āĻ†āĻ¸ā§āĻ¨ āĻ†āĻŦāĻžāĻ° āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŋ āĻ¯ā§‡ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡:

āĻĒāĻžāĻ‡āĻĨāĻ¨ā§‡ āĻŸā§‡āĻ˛āĻŋāĻ—ā§āĻ°āĻžāĻŽ āĻŦāĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸

āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ° āĻ¨ā§€āĻšā§‡ āĻŦā§‹āĻ¤āĻžāĻŽ āĻŸāĻŋāĻĒā§‡, āĻŦāĻŸāĻŸāĻŋāĻ•ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ¸ā§‡āĻ‡ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯ā§‡āĻ–āĻžāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻāĻ‡ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻŸāĻŋ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤

āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ‰āĻĒāĻ¸āĻ‚āĻšāĻžāĻ°ā§‡āĻ°

āĻ…āĻŦāĻļā§āĻ¯āĻ‡, āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸āĻŋāĻ• āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§‡āĻ° āĻ­āĻžāĻ¨ āĻ•āĻ°ā§‡ āĻ¨āĻž, āĻ¤āĻŦā§‡, āĻāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻĻā§āĻ°ā§āĻ¤ āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻœāĻŸāĻŋāĻ˛ āĻ†āĻ‰āĻŸāĻĒā§āĻŸā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¨ā§‡āĻ‡ āĻāĻŽāĻ¨ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒāĻžāĻ āĻžāĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨