网络配置的备份
对于网络配置备份的重要性我想不需要我多想,每一个玩网络的人都应该知道这方面的需求,对于大公司而言有自己的NOC系统,对于自动备份而言只是其中一个很小的功能,
而我今天个大家讲的是利用linunx 的脚本去完成自动备份,完全免费。
其实我们用的脚本原理就是代替人手工去登录网络设备,然后备份配置上传到TFTP 的动作。
一、自动备份网络设备配置的大概步骤 已ubuntu为例
1、 需要安装tftp server 如果需要发邮件需要安装send mail
2、 编写自动备份脚本 如:autobackup.sh
3、 提供需要自动备份的IP 如:switch
4、 制订备份的schedule
二、安装TFTP Server
1、安装相关软件包
sudo apt-get install tftpd-hpa(服务端)
sudo apt-get install tftp-hpa (客户端)
sudo apt-get install xinetd
2、建立配置文件
cd /etc/xinetd.d/
sudo vim tftp
输入
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot -c #//我在ubuntu上加上这个参数后无法启动tftpd
#可以随便指什么路径 –s 是指定路径 –c 是可以覆盖
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
存盘退出
3、建立tftp服务文件目录
sudo mkdir /tftpboot
sudo chmod 777 /tftpboot -R
#-R 是递归目录下的文件的权限
4、从新启动服务
sudo /etc/init.d/xinetd restart
安装完成!
测试:
/nfsroot/rootfs/button$ tftp 1.1.1.1
tftp> put hello.c
Sent 1018 bytes in 0.0 seconds
tftp> get hello.c
Received 1018 bytes in 0.1 seconds
tftp> put book.c
Sent 1980 bytes in 0.0 seconds
tftp> get book.c
Received 1980 bytes in 0.0 seconds
注: nfsroot/rootfs/button预先有hello.c book.c
三、自动备份交换机配置
需要两个文件 autoback.sh switchip
1.vim autoback.sh
#######################################
#!/bin/sh
#SW_TELENT_USERNAME=username #--------SW 用户名
#SW_TELNET_PASSWD=password #--------SW 密码
#SW_ENABLE_PASSWD=password2 #--------SW enable密码
TFTP_SERVER_IPADD=1.1.1.1 #--------tftp IP 地址
while read SW_IP ; do
echo $SW_IP
(
sleep 1;
echo "SW_TELENT_USERNAME^M"; #--------输入SW 用户名
sleep 1; #--------等待1秒钟
echo "SW_TELNET_PASSWD^M"; #--------输入SW 密码
sleep 1;
echo "enable^M"; #--------输入enable
sleep 2
echo "SW_ENABLE_PASSWD^M"; #--------输入enable密码
sleep 1;
echo "copy startup-config tftp $TFTP_SERVER_IPADD $(date +%F)_$SW_IP.cfg^M"; #--------保存配置到tftp,以日期+IP .cfg命名
sleep 4;
echo "exit^M";
sleep 1;
echo "exit^M";
) | telnet $SW_IP | tee -a /home/ox/switchlog/$(date +%F)_$SW_IP.log #--------将以上行为传递给telnet IP动作,并在屏幕上输出,切保存log
done < /home/ox/backup/switchip #--------将fwip (备份设备IP)内的IP地址传送给脚本调用
exit 0;
#注意所有的“^M”是表示发送回车的意思,它不是写出来的
#而是要按住“ctrl+v”打出“^”,然后按住“ctrl+shift+m”打出“M”
#目前发现foundry 交换机有这样的需求,cisco 不需要
#######################################
2、vim switchip
#######################################
192.168.1.1 #//直接写入交换机ip就好了
192.168.1.2 #//直接写入交换机ip就好了
#######################################
三、自动备份防火墙配置
需要两个文件 autoback.sh fwip
1.vim autoback.sh
#######################################
!/bin/sh
SW_TELENT_USERNAME=username
SW_TELNET_PASSWD=password
TFTP_SERVER_IPADD=1.1.1.1
while read FW_IP ; do
echo $FW_IP
(
sleep 1;
echo "$SW_TELENT_USERNAME";
sleep 1;
echo "$SW_TELNET_PASSWD";
sleep 1;
echo "exec save config to tftp $TFTP_SERVER_IPADD $(date +%F)_$FW_IP.cfg";
sleep 4;
echo "exit";
) | telnet $FW_IP | tee -a /home/ox/switchlog/$(date +%F)_$FW_IP.log
done < /home/ox/backup/fwip
exit 0;
#######################################
2、vim fwip
#######################################
192.168.1.3 #//直接写入交换机ip就好了
192.168.1.4 #//直接写入交换机ip就好了
。。。。。。。。。
#######################################
#######################################
四、制订备份schedule
1.vim autoback.sh
基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
30 21 * * * /usr/bin/errclear -d S,O 30
上面的例子表示每晚的21:30执行errclear命令。
45 4 1,10,22 /usr/bin/errclear -d S,O 30
上面的例子表示每月1、10、22日的4 : 45执行errclear命令。
10 1 * * 6,0 /usr/bin/errclear -d S,O 30
上面的例子表示每周六、周日的1 : 10执行errclear命令。
0,30 18-23 * * * /usr/bin/errclear -d S,O 30
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟执行一遍errclear命令。
0 4 1 jan * /usr/bin/errclear -d S,O 30
一月一号的4点执行errclear命令
第一步:先用crontab编辑内容,如下:
[root@FTP-SamBa /]# crontab -e
01 07 * * * sh /usr/autobakup.sh
(输入这个内容,意思是系统每天的7:01运行位于/usr/backupshell.sh 这个shell)
第二步:查看schedule
[root@localhost ~]# crontab -l
01 07 * * * sh /usr/autobakup.sh #----------------执行脚本
01 23 * * * mail -s 'Router(192.168.1.3) log in SZ' < /var/log/192.168.1.3.log #-----执行mail 发送
阅读(1478) | 评论(0) | 转发(0) |