เบเปเบญเบเบเปเบฒเบเบกเบฑเบเบเบฐเบกเบตเบชเบฐเบเบฒเบเบฐเบเบฒเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบตเปเบเปเบฒเปเบเบฑเบเบขเบนเปเบเบตเปเบเบตเปเปเบฅเบฐเปเบเบเบฑเบเบเบธเบเบฑเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเปเบฒเบ SSH เบเปเปเปเบกเปเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบชเบฐเบเบงเบเบเบตเปเบชเบธเบ, เปเบเบฒเบฐเบงเปเบฒเบเปเบฒเบเบญเบฒเบเบเบฐเบเปเปเบกเบตเบฅเบนเบเบเปเบฒ SSH, เบเบตเปเบขเบนเปเปเบเบตเบเปเบงเบตเบซเบผเบทเบเบฒเบเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเบเบนเปเปเบเป / เบฅเบฐเบซเบฑเบเบเปเบฒเบเบขเบนเปเปเบเบกเบท. เปเบเปเบเบญเบเบงเปเบฒเบกเบต
เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฑเบเบชเบดเบเปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเปเปเบเบเปเบฒเบเบเบฒเบเปเบเปเบซเบเปเบฒเบชเบปเบเปเบ. เบเบท, เบเบฝเบ Telegram bot เบเบตเป, เปเบกเบทเปเบญเปเบเบตเบเบเบปเบงเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบเบกเบฑเบเปเบญเบ, เบเบฐเบเบฐเบเบดเบเบฑเบเบเปเบฒเบชเบฑเปเบเบเบตเปเบเบทเบเบชเบปเปเบเปเบเบซเบฒเบกเบฑเบเปเบฅเบฐเบชเบปเปเบเบเบปเบเปเบเปเบฎเบฑเบเบเบทเบ. เบกเบตโเบเบฒเบโเบชเบถเบโเบชเบฒโ
เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฐเบเบดเบเบฑเบเปเบเบเบเบฒเบเบเบตเปเปเบ Ubuntu 16.04, เปเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบตเบเบเบปเบงเบเบตเปเบเปเปเบกเบตเบเบฑเบเบซเบฒเปเบเบเบฒเบเปเบเบเบขเบฒเบเบญเบทเปเบเป, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฐเบเบฒเบเบฒเบกเปเบฎเบฑเบเบเบธเบเบขเปเบฒเบเปเบเบเบฒเบเบเบปเปเบงเปเบ.
เบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบ bot
เบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบ bot เปเปเปเบเบฑเบ @BotFather. เบเบงเบเปเบฎเบปเบฒเบชเบปเปเบเปเบซเปเบฅเบฒเบง /newbot
เปเบฅเบฐเปเบเบตเปเบกเปเบเบตเบกเปเบเบเปเปเบเบงเบฒเบก. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบเบฒเบ token เบชเปเบฒเบฅเบฑเบ bot เปเบซเบกเปเปเบฅเบฐ id เบเบญเบเบเปเบฒเบ (เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบกเบฑเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, เบเบฒเบ
เบเบฒเบเบเบฐเบเบฝเบก Python
เปเบเบทเปเบญเปเบเบตเบเบเบปเบง bot เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบซเปเบญเบเบชเบฐเบซเบกเบธเบ telebot
(pip install pytelegrambotapi
). เบเบฒเบเบเปเบฒเปเบเปเบซเปเบญเบเบชเบฐเบซเบกเบธเบ subprocess
เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฐเบเบดเบเบฑเบเบเปเบฒเบชเบฑเปเบเบขเบนเปเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ.
เปเบฅเปเบ bot
เปเบเปเบเบตเบเปเบงเบตเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเปเบเบฅเป 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)#ะฒ ัะปััะฐะต ะฟะฐะดะตะฝะธั
เบเบงเบเปเบฎเบปเบฒเบเปเบฝเบเปเบเบ bot token เปเบเบกเบฑเบเบเปเบงเบเบญเบฑเบเบเบตเปเบญเบญเบเปเบซเปเปเบเบ @BotFather, เปเบฅเบฐ user_id เบเปเบงเบเบเปเบฒ id เบเบญเบเบเบฑเบเบเบตเบเบญเบเบเปเบฒเบ. เบเบฒเบเบเบงเบเบชเบญเบ ID เบเบนเปเปเบเปเปเบกเปเบเบกเบตเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเปเบซเป bot เบชเบฐเบซเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบเบเปเบฒเบเปเบซเปเบเบฑเบเบเปเบฒเบเปเบเบปเปเบฒเบเบฑเปเบ. เบเบฑเบเบเบฑเบ check_output()
เบเบฐเบเบดเบเบฑเบเบเปเบฒเบชเบฑเปเบเบเปเบฒเบเปเบฅเบฐเบชเบปเปเบเบเบปเบเปเบเปเบฎเบฑเบ.
เบเบฑเบเบซเบกเบปเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเปเบกเปเบเปเบเบทเปเบญเปเบเบตเบเบเบปเบง bot. เปเบเบทเปเบญเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฐเบเบงเบเบเบฒเบเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบตเปเบเปเบญเบเบกเบฑเบเปเบเป screen
(sudo apt-get install screen
):
screen -dmS ServerBot python3 bot.py
(เบเปเบญเบเบเบตเป "ServerBot" เปเบกเปเบ ID เบเบฐเบเบงเบเบเบฒเบ)
เบเบฐเบเบงเบเบเบฒเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบฐเปเบฅเบตเปเบกเบเบปเปเบเปเบเบเบทเปเบเบซเบฅเบฑเบ. เปเบซเปเปเบเบปเปเบฒเปเบเปเบเบเบฒเบเบชเบปเบเบเบฐเบเบฒเบเบฑเบ bot เปเบฅเบฐเบเบงเบเปเบเบดเปเบเบงเปเบฒเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฒเบกเบเบตเปเบกเบฑเบเบเบงเบเบเบฐ:
เบเปเบชเบฐเปเบเบเบเบงเบฒเบกเบเบดเบเบเบต! bot เบเบฐเบเบดเบเบฑเบเบเปเบฒเบชเบฑเปเบเบเบตเปเบเบทเบเบชเบปเปเบเปเบเบซเบฒเบกเบฑเบ. เปเบเบเบฑเบเบเบธเบเบฑเบ, เปเบเบทเปเบญเปเบเบปเปเบฒเปเบเบดเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ, เบเปเบฒเบเบเบฝเบเปเบเปเบเปเบญเบเบเบฒเบเปเบเบตเบเบเบฒเบเบชเบปเบเบเบฐเบเบฒเบเบฑเบ bot.
เบเบณเบชเบฑเปเบเบเปเบณ
เปเบฅเบทเปเบญเบเป, เปเบเบทเปเบญเบเบดเบเบเบฒเบกเบชเบฐเบเบฒเบเบฐเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ, เบเปเบฒเบเบเปเบญเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบชเบฑเปเบเบเบฝเบงเบเบฑเบ. เบเบฑเปเบเบเบฑเปเบ, เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเปเบฒเบชเบฑเปเบเบเปเปเบฒเบเบฑเบเปเบเบเบเปเปเบกเบตเบเบฒเบเบชเบปเปเบเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเบเบฐเปเบซเบกเบฒเบฐเบชเบปเบกเบซเบผเบฒเบ.
เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฐเบเบดเบเบฑเบเบกเบฑเบเปเบเบเปเบเปเบเบธเปเบก inline เบเบฒเบเปเบเปเบเปเปเบเบงเบฒเบก:
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
เปเบซเปเบเบงเบเปเบเบดเปเบเบญเบตเบเบเบฑเปเบเบงเปเบฒเบเบธเบเบขเปเบฒเบเปเบฎเบฑเบเบงเบฝเบเบขเปเบฒเบเบเบทเบเบเปเบญเบ:
เปเบกเบทเปเบญเบเปเบฒเบเบเบฅเบดเบเปเบชเปเบเบธเปเบกเบเบฒเบเปเบเปเบเปเปเบเบงเบฒเบก, bot เบเปเบญเบเปเบฎเบฑเบเบเปเปเบฒเบเปเบฒเบชเบฑเปเบเบเบตเปเบเปเปเบเบงเบฒเบกเบเบทเบเบชเบปเปเบ.
เปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบเบฒเบเบชเบฐเบซเบฅเบธเบเปเบเป
เปเบเปเบเบญเบ, เบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเปเปเบเปเบเปเบฒเบเปเบฒเปเบเบฑเบเบเบฒเบเบเบปเบเปเบเบเบงเบดเบเบตเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเบเบเบฅเบฒเบชเบชเบดเบ, เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบกเบฑเบเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบเปเปเบงเปเบฅเบฐเบชเบปเปเบเบเปเบฒเบชเบฑเปเบเบเบตเปเบเปเปเบเปเบญเบเบเบฒเบเบเบปเบเบเบฐเบฅเบดเบเบเบตเปเบชเบฑเบเบชเบปเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com