Chinaunix首页 | 论坛 | 博客
  • 博客访问: 119830
  • 博文数量: 12
  • 博客积分: 369
  • 博客等级: 一等列兵
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-02 08:26
文章分类

全部博文(12)

文章存档

2013年(1)

2012年(11)

分类: 系统运维

2012-10-30 14:42:49

网络配置的备份
对于网络配置备份的重要性我想不需要我多想,每一个玩网络的人都应该知道这方面的需求,对于大公司而言有自己的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 发送
阅读(1471) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~