@enabl3

Как реализовать переменное имя в названии скрипта?

Всем привет, написал простого бота для управления локальными компами, стал вопрос в том, что для этого используются разные скрипты с незначительными изменениями в соответствии с тем, кто пишет команду боту.
bash скрипты генерируются с названием $user-status.sh
Можно ли каким то образом, дабы не загромождать сам код бота блоком #statusIP, просто использовать переменное имя в этом скрипте в зависимости от того кто пишет?
class SSHWrapper(object):
    def __init__(self, user='user', psw='pass1234', port=22):
        self.user = user
        self.psw = psw
        self.port = port
        self.ssh = paramiko.SSHClient()
        self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
#statusIP
    def get_status(self, host, user=None, psw=None, port=None):
        self.ssh.connect(
            hostname=host,
            port=port or self.port,
            username=user or self.user,
            password=psw or self.psw
        )
        # Выполнение команды
        stdin, stdout, stderr = self.ssh.exec_command("$user-status.sh")
        # Читаем результат:
        result = stdout.read() + stderr.read()
        self.ssh.close()
        return result
    
ssh = SSHWrapper()

def listener(messages):
#STATUSIP
    @bot.message_handler(commands=['status'])
    def handle_status_request(message):
        # получение из чата IP сервака
        ip = message.text.split()[-1]
    thrue_ip = re.findall(r'[1][9][2].[1][6][8].\d{1,3}\.\d{1,3}', ip)
        if ip in thrue_ip:
    # проверка его на доступность
      r = pyping.ping(ip)
      if r.ret_code == 0:
        result = ssh.get_status(ip)
        bot.send_message(message.chat.id, result)
      else:
        result = ("Комп недоступен.")
        bot.send_message(message.chat.id, result)
        else:
                bot.send_message(message.chat.id, "*Команда НЕ распознана.*\nВероятнее всего НЕ указан (указан неправильно) IP адрес нужного тебе компа.", parse_mode="Markdown")

bot.set_update_listener(listener)
while True:
    try:
        bot.polling(none_stop=True)
    except Exception as err:
        logging.error(err)
        time.sleep(10)
  • Вопрос задан
  • 163 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы