Я использую paramiko для получения информации от коммутатора. Шаг manul будет следующим: 1. Войдите в коммутатор через ssh 2. выполните простую команду
вот результат:
SW10 [standalone: master] > show interfaces ethernet 1/32 status
Port Operational state Speed Negotiation
---- ----------------- ----- -----------
Eth1/32 Up 10 Gbps No-Negotiation
Вы можете увидеть вывод только текст.
Но когда я запустил это через скрипт, я получил следующие странные символы.
import paramiko
import time
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('10.10.21.22', username='admin', password='pass')
channel = ssh.invoke_shell()
resp = channel.recv(9999)
show_interface_cmd = "show interfaces ethernet 1/21 status\r\n"
channel.send(show_interface_cmd)
resp = channel.recv(9999)
print(resp)
Вывод:
b'\rSW10 [standalone: master] > show interfaces ethernet 1/26 status\r\r\n\x1b[?1h\x1b=\r\r\nPort
Operational state Speed Negoti \x08ation \r\n----
----------------- ----- ------ \x08----- \r\nEth1/26 Up
10 Gbps No-Neg \x08otiation \r\n\r\x1b[K\x1b[?1l\x1b>\rE2E-M9958-102Y-SW10 [standalone: master] > \r\r\n\rSW10 [standalone: master] > '
Затем, если я отправлю другую правильную команду и попытаюсь получите ответ с помощью recv
, вывод будет содержать ошибку.
Мой вопрос: почему я получил такой странный вывод? И как с этим справиться правильно? Спасибо.