使用Linux实现自动备份
2015-12-03
网络设备配置备份在运维过程中是必不可少的,备份的文件可以帮助管理员在设备出现故障时快速恢复设备配置,减少故障时间。当设备过多时,人工一个一个设备的登录进行配置备份,实在是太耗费时间了,因此实现设备配置自动化配置是亟需的。实现配置备份自动化的方法有很多,本文主要介绍如何使用Linux脚本实现网络设备配置的自动化备份。
原理介绍
服务器利用crontab计划定期执行Linux脚本登录设备,通过tftp协议将配置上传服务器指定目录下,并操作记录到日志文件中。
实现的功能
脚本自动判断备份是否成功,若未成功,未备份成功的设备是哪些,并将这些信息记录到文件中。
可以根据设备备份配置的命令进行分类,建立相应的设备列表和备份配置的脚本,从而实现批量备份设备配置。
可以根据需求设置定期自动化备份配置。
图1 调用示意图
准备条件
1.服务器1台:安装带有crond、tcl、expect、tftp 服务软件的Linux系统,且将tftp的根目录设置为备份配置脚本中放置配置文件的目录。
2.获取网络设备tftp命令用法和配置文件名称,根据命令的种类进行分类。
3.服务器和网络设备可以相互通信。
备份配置脚本目录规划
假设备份配置脚本所在目录为“/home/config_backup ”,该 目录下的文件或目录如下:
device_config:配置备份目录,根据备份时间分别放置备份的配置文件。
log:日志目录,放置脚本执行时的日志。
script :expect脚本目录,放置登录不同类型设备的脚本。
conf:脚本配置文件目录,包含devices目录和backup_server.txt。
config_backup.sh:配置备份shell脚本。
config_backup.crontab:定期执行的配置备份shell脚本。
调用关系
箭头方向代表调用与引用的关系,方向的尾部为被引用或调用的文件,如图1所示。
脚本文件解释
(注:斜体部分文字需要根据实际情况进行更改)
用户可以根据自己的分类在对应目录中建立list_of_deviceN文 件 和ist_of_deviceN.exp文件。
以下是以锐捷交换机为例,建立的list_of_device1文件和ist_of_device1.exp文件
# 以锐捷交换机为例,telnet登录,有telnet密码和enable密码。
# 自动备份命令会因不同登录方式、不同厂家、不同型号而不同,请根据实际环境更改。
crontab设置:(假设每个月的10日14:30进行配置备份)
获取配置文件
用户可以在服务器上搭建SFTP、FTP、SAMBA等文件共享服务,用于获取配置文件,查看日志文件。
小结
本文介绍的方法是利用crontab、bash脚 本、expect脚本共同实现,旨在搭建一个框架,由用户根据实际情况建立自己配置文件,即可完成自动化备份,可大大减少配置备份的时间。此外,通过改变expect脚本中的命令,脚本框架不仅可以实现配置自动化备份,还可以实现批量化修改设备配置等功能。