Ọtụtụ mgbe, a na-enwe ọnọdụ mgbe ịnweta ihe nkesa dị ebe a na ugbu a. Otú ọ dị, ijikọ site na SSH abụghị mgbe niile ka usoro kachasị adaba, n'ihi na ị nwere ike ị gaghị enwe onye ahịa SSH, adreesị ihe nkesa ma ọ bụ njirimara / okwuntughe n'aka. N'ezie nwere
N'ihi ya, m kpebiri mejuputa a mfe ma na-akpali ngwọta. Ya bụ, dee a Telegram bot na, mgbe a malitere na sava n'onwe ya, ga-emezu iwu ezigara ya wee weghachi nsonaazụ ya. N'ịbụ onye gụrụ akwụkwọ
Emere m ọrụ a na Ubuntu 16.04, mana maka mmalite enweghị nsogbu na nkesa ndị ọzọ, agbalịrị m ime ihe niile n'ụzọ zuru oke.
Ndebanye aha bot
Iji @BotFather na-edebanye bot ọhụrụ. Anyị na-ezitere ya ya /newbot
na n'ihu na ederede. Anyị ga-achọ akara maka bot ọhụrụ na id gị (ị nwere ike nweta ya, ọmụmaatụ, site na
Nkwadebe Python
Iji malite bot anyị ga-eji ọbá akwụkwọ telebot
(pip install pytelegrambotapi
). Iji ụlọ akwụkwọ subprocess
Anyị ga-eme iwu na sava ahụ.
Na-agba ọsọ bot
Na sava anyị na-emepụta faịlụ bot.py:
nano bot.py
Ma tinye koodu n'ime ya:
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)#в случае падения
Anyị dochie akara bot dị na ya nke @BotFather nyere, yana user_id nwere uru id nke akaụntụ gị. Ịkwado ID onye ọrụ dị mkpa ka bot na-enye naanị gị ohere ịnweta ihe nkesa gị. Ọrụ check_output()
na-eme iwu gafere wee weghachi nsonaazụ ya.
Naanị ihe fọdụrụ bụ ịmalite bot. Iji mee usoro na ihe nkesa na-amasị m iji screen
(sudo apt-get install screen
):
screen -dmS ServerBot python3 bot.py
(ebe "ServerBot" bụ NJ usoro)
Usoro ga-amalite na-akpaghị aka na ndabere. Ka anyị banye na mkparịta ụka bot wee lelee na ihe niile na-arụ ọrụ dịka o kwesịrị:
Ekele! Bot ahụ na-emezu iwu ezigara ya. Ugbu a, iji nweta ihe nkesa, naanị ị ga-emepe mkparịta ụka na bot.
Na-ekwughachi iwu
Ọtụtụ mgbe, iji nyochaa ọnọdụ nke ihe nkesa, ị ga-agba ọsọ otu iwu. Ya mere, mmejuputa iwu ugboro ugboro na-enweghị izipu ha ọzọ ga-adabara nke ọma.
Anyị ga-eme ya site na iji bọtịnụ inline n'okpuru ozi:
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)#в случае падения
Malitegharịa bot:
killall python3
screen -dmS ServerBot python3 bot.py
Ka anyị lelee ọzọ na ihe niile na-arụ ọrụ nke ọma:
Mgbe ị pịrị bọtịnụ n'okpuru ozi ahụ, bot ga-emerịrị iwu nke ezitere ozi ahụ.
Kama nkwubi okwu
N'ezie, usoro a anaghị eme ka ọ bụrụ onye na-anọchi anya ụzọ njikọ oge ochie, Otú ọ dị, ọ na-enye gị ohere ịchọta ngwa ngwa banyere ọnọdụ nke ihe nkesa ahụ ma zipụ ya iwu na-adịghị achọ mmepụta mgbagwoju anya.
isi: www.habr.com