用python写一个批量交换机巡检工具并输出到文件中
时间: 2024-03-01 20:54:21 浏览: 81
好的,下面是一个用Python写的批量交换机巡检工具的示例代码,并将输出保存到文件中:
```python
import paramiko
# 定义交换机列表,每个元素是一个字典,包含交换机的IP地址、用户名和密码
switches = [
{'ip': '192.168.1.1', 'username': 'admin', 'password': 'password'},
{'ip': '192.168.1.2', 'username': 'admin', 'password': 'password'},
{'ip': '192.168.1.3', 'username': 'admin', 'password': 'password'}
]
# 定义需要执行的命令列表
commands = [
'show version',
'show interface status',
'show interfaces gigabitEthernet 1/0/1',
'show ip interface brief'
]
# 遍历交换机列表,并连接每个交换机
for switch in switches:
ip = switch['ip']
username = switch['username']
password = switch['password']
# 创建SSH客户端对象,并连接交换机
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(ip, username=username, password=password)
# 执行每个命令,并将输出保存到文件中
with open('output_{}.txt'.format(ip), 'w') as f:
for command in commands:
stdin, stdout, stderr = client.exec_command(command)
output = stdout.read().decode()
f.write('Output for command {}:\n'.format(command))
f.write(output)
f.write('\n')
# 断开SSH连接
client.close()
```
以上代码在执行每个命令时,将其输出保存到以交换机IP地址命名的文件中,文件格式为文本文件。你需要替换代码中的交换机IP地址、用户名和密码,以及需要执行的命令列表。执行代码后,将会在当前目录下生成多个输出文件,每个文件对应一个交换机的输出。你可以将其修改为将输出保存到其他路径或其他格式的文件中。
阅读全文