рдкрд╛рдпрдерди рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдирдХреНрд╕ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪ

рдмрд╣реБрдд рдмрд╛рд░ рдРрд╕реЗ рд╣рд╛рд▓рд╛рдд рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рд╕рд░реНрд╡рд░ рдХреА рдкрд╣реБрдВрдЪ рдпрд╣рд╛рдВ рдФрд░ рдЕрднреА рдХреА рдЬрд░реВрд░рдд рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, SSH рдХрдиреЗрдХреНрд╢рди рд╣рдореЗрд╢рд╛ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ SSH рдХреНрд▓рд╛рдЗрдВрдЯ, рд╕рд░реНрд╡рд░ рдПрдбреНрд░реЗрд╕ рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ / рдкрд╛рд╕рд╡рд░реНрдб рд▓рд┐рдВрдХ рд╣рд╛рде рдореЗрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рд╡реЗрдмрдорд┐рди рд╣реИ , рдЬреЛ рдкреНрд░рд╢рд╛рд╕рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдпрд╣ рддреНрд╡рд░рд┐рдд рдкрд╣реБрдВрдЪ рднреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рд╕рд░рд▓ рд▓реЗрдХрд┐рди рджрд┐рд▓рдЪрд╕реНрдк рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЕрд░реНрдерд╛рддреН, рдПрдХ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ рд╕рд░реНрд╡рд░ рдкрд░ рд╣реА рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕реЗ рднреЗрдЬреЗ рдЧрдП рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдПрдЧрд╛ред рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХрдИ рд▓реЗрдЦреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рднреА рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЙрдмрдВрдЯреВ 16.04 рдкрд░ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рд╡рд┐рддрд░рдгреЛрдВ рдкрд░ рдкрд░реЗрд╢рд╛рдиреА рдореБрдХреНрдд рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕рдм рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рдмреЙрдЯ рдкрдВрдЬреАрдХрд░рдг


@BotFather рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдмреЙрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВред рд╣рдо рдЙрд╕реЗ /newbot рдФрд░ рдкрд╛рда рдореЗрдВ рдЖрдЧреЗ рднреЗрдЬрддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдирдП рдмреЙрдЯ рдХреЗ рдЯреЛрдХрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдЖрдкрдХреА рдЖрдИрдбреА (рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, @userinfobot рд╕реЗ )ред

рдЕрдЬрдЧрд░ рдХреА рддреИрдпрд╛рд░реА


рдмреЙрдЯ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо 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 
(рдЬрд╣рд╛рдВ "ServerBot" рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ)

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╢реБрд░реВ рд╣реЛрдЧреАред рдЪрд▓реЛ рдмреЙрдЯ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:



Songratulations! рдмреЙрдЯ рдЗрд╕реЗ рднреЗрдЬреЗ рдЧрдП рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЕрдм, рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдмреЙрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд╡рд╛рдж рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЖрджреЗрд╢реЛрдВ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐


рдЕрдХреНрд╕рд░, рдЖрдкрдХреЛ рдЙрд╕реА рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреА рд╣реЛрдЧреАред рдЗрд╕рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рднреЗрдЬрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдЖрджреЗрд╢реЛрдВ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╣реБрдд рдЬрдЧрд╣ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрдЧрд╛ред

рд╣рдо рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рддрд╣рдд рдЗрдирд▓рд╛рдЗрди рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ:

 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 

рдлрд┐рд░ рд╕реЗ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:



рд╕рдВрджреЗрд╢ рдХреЗ рдиреАрдЪреЗ рдмрдЯрди рджрдмрд╛рдХрд░, рдмреЙрдЯ рдХреЛ рдЙрд╕ рдХрдорд╛рдВрдб рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рд╕реЗ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛ред

рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп


рдмреЗрд╢рдХ, рдпрд╣ рд╡рд┐рдзрд┐ рдХреНрд▓рд╛рд╕рд┐рдХ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд▓реНрджреА рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рдЙрд╕реЗ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЬрдЯрд┐рд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

Source: https://habr.com/ru/post/hi443846/


All Articles