from netmiko import ConnectHandler
import time
def ssh(ip,username,password,commands,device_type='cisco_ios',enpass=None):
"思科交换机配置导出"
cisco_switch = {
'device_type': device_type, #设备类型
'ip': ip, #设备IP,这里我们使用的是变量,方便循环
'username': username, #登陆用户名
'password': password, #登陆密码
'port': 22, #登陆端口,默认22
'secret': enpass, #enable密码
'verbose': False,#是否详细报告,默认否
}
net_connect = ConnectHandler(**cisco_switch)
print("connect to {} success".format(ip))
if enpass:
net_connect.enable() #进入特权模式
timestr = time.strftime('%Y-%m-%d', time.localtime(time.time()))
conf='%s_%s.txt' % (ip, timestr)
conf=open(conf,mode='w+')
for cmd in commands:
print('excute: '+cmd)
result = net_connect.send_command(cmd)
print(result)
conf.write(result)
net_connect.disconnect()
print('disconnect server ' + ip)
if __name__ == '__main__':
host = open('host', 'r').read()
rows = host.split('\n')
for row in rows:
r=row.split(':')
ip=r[0]
username=r[1]
password=r[2]
enpass=r[3]
dtype=r[4]
ssh(ip=ip,username=username,password=password,commands=["sh -c 'ip add show'"],device_type=dtype,enpass=None)
python SSH执行命令获取结果(此方法适用于ssh到交换机读取全部配置进行交换机配置备份)
最新推荐文章于 2024-08-10 16:04:04 发布