แกแแแแแแ แฎแจแแ แแ แแ แแก แกแแขแฃแแชแแแแ, แ แแแแกแแช แกแแ แแแ แแ แฌแแแแแ แกแแญแแ แแ แแฅ แแ แแฎแแ. แแฃแแชแ, SSH-แแ แแแแแแจแแ แแแ แงแแแแแแแแก แแ แแ แแก แงแแแแแแ แแแกแแฎแแ แฎแแแแแ แแแ, แ แแแแแ แจแแกแแซแแแ แฎแแแ แแ แแฅแแแแแ SSH แแแแแแขแ, แกแแ แแแ แแก แแแกแแแแ แแ แแ แแแแฎแแแ แแแแแก/แแแ แแแแก แแแแแแแแชแแ. แ แ แแฅแแ แฃแแแ แแฅแแก
แแแแขแแ แแแแแแฌแงแแแขแ แแแแแแฎแแ แชแแแแแแแแ แแแ แขแแแ, แแแแ แแ แกแแแแขแแ แแกแ แแแแแฌแงแแแขแ. แแแ แซแแ, แแแฌแแ แแก Telegram แแแขแ, แ แแแแแแช แแแแแ แกแแ แแแ แแ แแแจแแแแแกแแก แจแแแกแ แฃแแแแก แแแกแแ แแแแแแแแแ แแ แซแแแแแแแก แแ แแแแแ แฃแแแแก แจแแแแแก. แกแฌแแแแแก แจแแแแแ
แแ แแแแแแฎแแ แชแแแแ แแก แแ แแแฅแขแ Ubuntu 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 แแฅแแแแ แแแแแ แแจแแก ID แแแแจแแแแแแแแ. แกแแญแแ แแ แแแแฎแแแ แแแแแก ID-แแก แจแแแแฌแแแแ, แ แแแ แแแขแ แแฅแแแแก แกแแ แแแ แแ แฌแแแแแแก แแฎแแแแ แแฅแแแ แแแแชแแ. แคแฃแแฅแชแแ check_output()
แแกแ แฃแแแแก แแแชแแแฃแ แแ แซแแแแแแก แแ แแแ แฃแแแแก แจแแแแแก.
แ แฉแแแ แแฎแแแแ แแแขแแก แแแฌแงแแแ. แกแแ แแแ แแ แแ แแชแแกแแแแก แแแกแแจแแแแแ แแแ แฉแแแแแ แแแแแแแงแแแ screen
(sudo apt-get install screen
):
screen -dmS ServerBot python3 bot.py
(แกแแแแช "ServerBot" แแ แแก แแ แแชแแกแแก ID)
แแ แแชแแกแ แแแขแแแแขแฃแ แแ แแแฃแจแแแแแก แคแแแแ. แแแแแ แแแแแแแแแ แแแแแแแแ แแแขแแแ แแ แจแแแแแแฌแแแ, แ แแ แงแแแแแคแแ แ แแฃแจแแแแก แแกแ, แ แแแแ แช แฃแแแ:
แแแแแชแแ! แแแขแ แแกแ แฃแแแแก แแแกแแ แแแแแแแแแ แแ แซแแแแแแแก. แแฎแแ, แกแแ แแแ แแ แฌแแแแแแกแแแแก, แแฅแแแ แฃแแ แแแแ แฃแแแ แแแฎแกแแแ แแแแแแแ แแแขแแแ.
แแ แซแแแแแแก แแแแแแ แแแ
แฎแจแแ แแ, แกแแ แแแ แแก แแแแแแแ แแแแแก แแแแแขแแ แแแแแกแแแแก, แแฅแแแ แฃแแแ แจแแแกแ แฃแแแ แแแแแ แแ แซแแแแแแแ. แแแแขแแ, แแแแแแแ แแแแแ แแ แซแแแแแแแแก แแแแฎแแ แชแแแแแแ แแแแ แฎแแแแฎแแ แแแแแแแแแก แแแ แแจแ แซแแแแแ แฃแแแแแแ แแฅแแแแ.
แฉแแแ แแแแแแฎแแ แชแแแแแแ แแแก แจแแขแงแแแแแแแแแแก แฅแแแจ แแงแแคแ แฆแแแแแแแแก แแแแแงแแแแแแ:
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