首页 > 编程 > Python > 正文

使用python telnetlib批量备份交换机配置的方法

2019-11-25 12:14:19
字体:
来源:转载
供稿:网友

使用了telnetlib模块,首先登录到交换机,列出并获取配置文件的名称,然后通过tftp协议将配置文件传输到文件服务器上,为避免配置文件覆盖,将备份的配置文件名称统一加入日期以作区分。

1. 登录方式和口令有好几种,比较懒惰,通过不同列表以做区分,如果每个交换机口令都不相同的话,就需要额外处理了。

2. 交换机的配置文件也有多种类型,也是通过列表进行区分。

3. 有些交换机支持ftp和sftp,但测试发现有些虽然有相应的客户端命令,但传输总有问题。也不能将每个交换机都配置为ftp服务器,不安全也不方便。最后采用tftp解决。tftp比较简单,没有办法创建目录以区分不同日期的备份。好在配置文件已经加入了日期做区分,马马虎虎可以运行了。

import telnetlib,sysfrom datetime import datetoday=date.today()print(today)ipaddrset1=['192.168.1.19','192.168.1.29','192.168.1.59']ipaddrset2=['192.168.1.39','192.168.1.49','192.168.1.69','192.168.1.56','192.168.1.6','192.168.1.9','192.168.1.24',      '192.168.1.72','192.168.1.73','192.168.1.74','192.168.1.75','192.168.1.76','192.168.1.41','192.168.1.16','192.168.1.32',]ipaddrset3=['192.168.1.51','192.168.1.52','192.168.1.53','192.168.1.54','192.168.1.55',      '192.168.1.15','192.168.1.16','192.168.1.22','192.168.1.23','192.168.1.25','192.168.1.26','192.168.1.27',      '192.168.1.28','192.168.1.7']hostname='192.168.8.201'tn=telnetlib.Telnet(hostname)print(tn.read_until(b'Username:').decode('ascii'))tn.write(b'**********/n')print(tn.read_until(b'Password:').decode('ascii'))tn.write(b'************/n')print(tn.read_until(b'>').decode('ascii'))for ipaddr in ipaddrset1:  telnet_dest="telnet "+ipaddr  tn.write(telnet_dest.encode('ascii')+b'/n')  tn.read_until(b'Password:').decode('ascii')  tn.write(b'**********/n')  tn.read_until(b'>').decode('ascii')  tn.write(b'dir/n')  tn.read_until(b'>').decode('ascii')  fn=str(today)+"_"+str(ipaddr)+"_vrpcfg.zip /n"  cmdli="tftp 192.168.5.33 put vrpcfg.zip " +str(fn)  tn.write(cmdli.ede('ascii'))  tmp=tn.read_until(b'>').decode('ascii')  if "successfully" in tmp:    print(str(ipaddr)+" backup successfully!")  else:    print(str(ipaddr)+" backup NOT successfully!")  tn.write(b'quit/n')  tn.read_until(b'>')for ipaddr in ipaddrset2:  telnet_dest="telnet "+ipaddr  tn.write(telnet_dest.encode('ascii')+b'/n')  tn.read_until(b'Password:').decode('ascii')  tn.write(b'**********/n')  tn.read_until(b'>').decode('ascii')  tn.write(b'dir/n')  tn.read_until(b'>').decode('ascii')  fn=str(today)+"_"+str(ipaddr)+"_startup.cfg /n"  cmdli="tftp 192.168.5.33 put startup.cfg " +str(fn)  tn.write(cmdli.encode('ascii'))  tmp=tn.read_until(b'>').decode('ascii')  if "successfully" in tmp:    print(str(ipaddr)+" backup successfully!")  else:    print(str(ipaddr)+" backup NOT successfully!")  tn.write(b'quit/n')  tn.read_until(b'>')for ipaddr in ipaddrset3:  telnet_dest="telnet "+ipaddr  tn.write(telnet_dest.encode('ascii')+b'/n')  tn.read_until(b'Password:').decode('ascii')  tn.write(b'************/n')  tn.read_until(b'>').decode('ascii')  tn.write(b'dir/n')  tn.read_until(b'>').decode('ascii')  fn=str(today)+"_"+str(ipaddr)+"_startup.cfg /n"  cmdli="tftp 192.168.5.33 put startup.cfg " +str(fn)  tn.write(cmdli.encode('ascii'))  tmp=tn.read_until(b'>').decode('ascii')  if "successfully" in tmp:    print(str(ipaddr)+" backup successfully!")  else:    print(str(ipaddr)+" backup NOT successfully!")  tn.write(b'quit/n')  tn.read_until(b'>')tn.write(b'exit/n')tn.close()

以上这篇使用python telnetlib批量备份交换机配置的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表