网络设备在生成环境中担任着重要的角色,为了在出现故障时,以最快的速度恢复,所有,在日常维护中,我们会选择定期对网络设备配置文件进行备份。当出现一些硬件故障时,需要更换新的网络设备,可以快速的恢复之前的配置。在生成环境中,你们是如何进行网络设备配置文件的备份呢?
今天分享一个备份脚本,希望对大家有所帮助。
拓扑
![a6e6a7dc6b4df8b19287ce4b1f7fa4c7.png](https://img-blog.csdnimg.cn/img_convert/a6e6a7dc6b4df8b19287ce4b1f7fa4c7.png)
此案例把网络设备的配置文件备份到FTP服务器上。
配置步骤
1、确保网络设备与FTP服务器能通信,并且能访问FTP服务器。
![bf11e9ab19392e748d67b71c70f7640d.png](https://img-blog.csdnimg.cn/img_convert/bf11e9ab19392e748d67b71c70f7640d.png)
2、编写备份配置文件脚本。脚本代码如下。
#coding=utf-8# 通过telnet 远程登录设备import telnetlibimport osimport datetimeimport timeimport sysreload(sys)sys.setdefaultencoding("utf-8")time1=datetime.datetime.now()time2=time1.strftime('%Y%m%d')def path_check(path): if os.path.exists(path): pass else: os.mkdir(path,0757)def login_ftp(telnetsession,password_prompt): telnetsession.write("ftp 192.168.35.202") telnetsession.read_until("(none)):") telnetsession.write("anonymous") telnetsession.read_until(password_prompt) telnetsession.write("") telnetsession.read_until("[ftp]") telnetsession.write("cd pub ") telnetsession.read_until("[ftp]") path="/var/ftp/pub/"+time2 if os.os.path.exists(path): pass else: telnetsession.write("mkdir "+ time2 +"") telnetsession.read_until("[ftp]") telnetsession.write("cd /pub/"+ time2 +"") telnetsession.read_until("[ftp]") def do_telent(Host,username,password): _UsermodTag=">" telnetsession = telnetlib.Telnet(Host,port=23,timeout=5) telnetsession.set_debuglevel(2) time1=datetime.datetime.now() time2=time1.strftime('%Y-%m-%d') #输入用户名 login_prompt="Username" response = telnetsession.read_until(login_prompt) if login_prompt in response: print ('[*] Username: %s'%username) telnetsession.write(username + "") #输入密码 password_prompt="Password" response = telnetsession.read_until(password_prompt) if password_prompt in response: print ('[*] Password: %s'%password) telnetsession.write(password + "") password_prompt="password" telnetsession.read_until(_UsermodTag) login_ftp(telnetsession,password_prompt) telnetsession.write("put vrpcfg.zip %s" %Host+'_'+time2+"_vrpcfg.zip" + "") telnetsession.read_until("[ftp]") telnetsession.close()if __name__ == '__main__': path="/var/ftp/pub/"+time2 path_check(path) Host=["192.168.35.10"] username="admin" password="admin123" for host in Host: do_telent(host,username,password)
3、把脚本加入crontab定期执行。
![0a451be22edf401de78bb6c2e0f5d676.png](https://img-blog.csdnimg.cn/img_convert/0a451be22edf401de78bb6c2e0f5d676.png)
4、验证
![1b28e394deede9955c0175266baebe5c.png](https://img-blog.csdnimg.cn/img_convert/1b28e394deede9955c0175266baebe5c.png)