Hangata ho na le maemo ha phihlello ea seva e hlokahala mona le hona joale. Leha ho le joalo, ho hokahanya ka SSH hase kamehla ho leng bonolo ka ho fetisisa, hobane u ka 'na ua se ke ua ba le mofani oa SSH, aterese ea seva, kapa motsoako oa mosebedisi / password. Ehlile u entse joalo
Kahoo ke ile ka etsa qeto ea ho kenya ts'ebetsong tharollo e bonolo empa e thahasellisang. E leng, ho ngola bot ea Telegraph eo, ha e qala ho seva ka boeona, e tla phethahatsa litaelo tse rometsoeng ho eona ebe e khutlisetsa sephetho. Kaha o ithutile
Ke kentse ts'ebetso ea morero ona ho Ubuntu 16.04, empa bakeng sa ts'ebetso e se nang mathata liphaellong tse ling, ke lekile ho etsa ntho e 'ngoe le e' ngoe ka mokhoa o akaretsang.
Ngoliso ea bot
Ngolisa bot e ncha le @BotFather. Rea mo romela /newbot
le ho feta temeng. Re tla hloka token e ncha ea bot le id ea hau (o ka e fumana, mohlala, ho tloha
Tokiso ea python
Ho tsamaisa bot, re tla sebelisa laeborari telebot
(pip install pytelegrambotapi
). Ho Sebelisa Laebrari subprocess
re tla phethahatsa litaelo ho seva.
Bot qala
Theha faele ea bot.py ho seva:
nano bot.py
Ebe u kenya khoutu ho eona:
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)#в случае падения
Re khutlisa tokene ea bot ho eona ka e fanoeng ke @BotFather, le user_id ka boleng ba id ea ak'haonte ea hau. Ho hlahloba ID ea mosebelisi hoa hlokahala e le hore bot e fane ka phihlello ho seva sa hau ho uena feela. Mosebetsi check_output()
e phethahatsa taelo e fanoeng mme e khutlisetsa sephetho.
E sala feela ho qala bot. Bakeng sa lits'ebetso tse sebetsang ho seva, ke khetha ho e sebelisa screen
(sudo apt-get install screen
):
screen -dmS ServerBot python3 bot.py
(moo "ServerBot" e leng ID ea ts'ebetso)
Tshebetso e tla matha ka tsela e iketsang ka morao. Ha re ee moqoqong le bot mme re hlahlobe hore ntho e 'ngoe le e' ngoe e sebetsa kamoo e lokelang:
Kea u babatsa! Bot e phethahatsa litaelo tse rometsoeng ho eona. Hona joale, e le hore u fihlele seva, u hloka feela ho bula moqoqo le bot.
Laela ho pheta-pheta
Hangata, ho beha leihlo boemo ba seva, o tlameha ho phethahatsa litaelo tse tšoanang. Ka hona, ts'ebetsong ea ho pheta-pheta litaelo ntle le ho li romela hape e tla be e le ntle haholo.
Re tla e kenya ts'ebetsong ka li-buttons tsa inline tlas'a melaetsa:
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)#в случае падения
Ho qala bot hape:
killall python3
screen -dmS ServerBot python3 bot.py
Ha re hlahlobeng hape hore na tsohle li sebetsa hantle:
Ka ho tobetsa konopo tlas'a molaetsa, bot e tlameha ho pheta taelo eo molaetsa ona o rometsoeng ho eona.
Ho e-na phetheha
Ha e le hantle, mokhoa ona ha o etse eka o nka sebaka sa mekhoa ea khale ea ho hokahanya, leha ho le joalo, e u lumella ho tseba kapele boemo ba seva le ho romela litaelo ho eona tse sa hlokeng tlhahiso e rarahaneng.
Source: www.habr.com