我有一个Cisco Nexus5548 IP地址和FQDN的列表。您能否帮助Python脚本对每个脚本进行SSH并提取以下内容,以将其导入Excel列格式:
IP名称端口号端口描述端口类型VLAN光纤类型中型 172.x.x.x hqcr1-swx-x E1 / x实际端口描述(访问或中继)300-305,2276,…1g-sr,10g-sr,1g-glct(铜纤维或双芯同轴电缆)
这是我到目前为止所拥有的:
ComboBoxItem
非常感谢您。
答案 0 :(得分:0)
您是否尝试在exec_command
上使用SSHClient
?不确定Cisco盒如何打开/关闭多个通道,但是似乎可以帮助将输出与每个命令分开。
我会做类似的事情:
from paramiko import SSHClient, AutoAddPolicy
def process_devices(devices, connect_args, commands):
with SSHClient() as client:
client.set_missing_host_key_policy(AutoAddPolicy())
for device in devices:
client.connect(device, **connect_args)
cmdout = []
for cmd in commands:
stdin, stdout, stderr = client.exec_command(cmd, timeout=10)
cmdout.append((stdout.read(), stderr.read()))
yield (device, cmdout)
这对诸如此类的东西很有用
from getpass import getpass
devices = [
'127.0.0.1',
]
connect_args = dict(
username='smason',
password=getpass("Password: "),
)
commands = [
"echo hello world",
"date",
]
for dev, cmdout in process_devices(devices, connect_args, commands):
print(f"{dev}: {cmdout}")
您当然可以根据需要将process_devices
的输出直接放入dict
中,这是一个返回适当对的迭代器