交换机配置备份架构

部署位置

交换机配置存储位置/tftp
copy脚本位置/copy_config_switch
同步周期:15天
执行命令:nohup sh do_copy_stat-config &
开机自启动jiankong1

环境:

tftp-server
执行脚本

安装linux版本的tftp-server

安装tftp服务器

yum -y install xinetd
yum -y install tftp
yum -y install tftp-server

配置tftp服务器

修改/etc/xinetd.d/tftp文件,将其中的disable=yes改为disable=no。 主要是设置TFTP服务器的根目录,开启服务。修改后的文件如下:

service tftp
{     socket_type            =dgram
       protocol                  =udp
       wait                        =yes
       user                        =root
       server                     =/usr/sbin/in.tftpd
       server_args             =-s /tftp -c
       disable                    =no
       per_source             =11
       cps                         =100 2
       flags                       =IPv4
}

说明:修改项server_args= -s -c,其中此处可以改为你的tftp-server的根目录,参数-s指定chroot,-c指定了可以创建文件。

创建/tftp

mkdir /tftp
chmod 777 /tftp

启动tftp服务器并关闭防火墙

service iptables stop
service xinetd restart
看到启动[OK]就可以了

查看tftp服务是否开启

netstat -a | grep tftp
显示结果为
udp 0 0 :tftp *:
表明服务已经开启,就表明tftp配置成功了。

交换机配置

配置低等级账号

ios:
username user privilege 5 password 0 test@2018!
nexus:
username user password 5 test@2018! role priv-0
查看命令:
show running-config | include username

给低等级用户赋权

ios:
privilege exec level 5 copy running-config tftp:
privilege exec level 5 copy startup-config tftp:
查看命令:
show running-config | include privilege
nexus:
role name priv-0
rule 11 permit command copy running-config tftp:
rule 12 permit command copy startup-config tftp:
查看命令:
show role name priv-0

配置tftp的源ip(选配)

ip tftp source-interface loopback 1
注:
交换机在发送tftp数据包的时候以最近的端口进行传输,源ip是接口ip,以udp数据包发送,如果出接口无法被server段路由到,可能导致数据无法传输,只能收到一个包,只能显示文件名,但是没有内容。此命令是更改tftp数据包的源ip,保证和server端能够顺利通讯。如果可以和server端正常通讯,则可以不用配置。

交换机配置备份脚本

**环境:**需要安装expect
命令:
yum -y install expect*

copy_stat-config:

使用示例:
./copy_stat-config 10.203.40.2 shanghai_config ssh user@
./copy_stat-config 10.200.200.2 guomao_config telnet
注:
telnet直接接ip,ssh需要使用用户名,否则默认用root登陆cisco设备。所以示例中telnet后边没有参数。而ssh后边需要使用user@。

#!/usr/bin/expect
#!/bin/bash
set host_ip [lindex $argv 0]
set filename_config [lindex $argv 1]
set login_commend [lindex $argv 2]
set username [lindex $argv 3]
set timeout 10
spawn $login_commend $username$host_ip
expect {
"Username" {send "user\n"; exp_continue}
"*yes/no" { send "yes\r"; exp_continue}
"Password:" { send "test@2018!\n" }
}
expect "#"
send "copy  startup-config  tftp:\n"
expect {
"*filename" {send "$filename_config\n"; exp_continue}
"*vrf" { send "\n"; exp_continue}
"*host" { send "10.201.81.90\n"; exp_continue }
"*bytes*" { send "\n" }
"successful" { send "\n" }
}


#set log_test log:[exec date -d yesterday "+%Y-%m-%d-%H-%S"]
#set log_test [lindex $argv 0]
#log_file $log_test
#expect "successful"
#expect "#"


exit
do_copy_stat-config:

使用示例:
sh do_copy_stat-config
注:
do_copy_stat-config调用copy_stat-config,并传一些参数,这里分为ssh和telnet两种情况。

#!bin/bash
host_ip_ssh=(10.200.200.231 10.200.200.234 10.200.200.236 10.200.200.250 10.200.200.253 10.200.200.5 10.200.200.8 10.201.0.2 10.201.0.3 10.202.0.2 10.202.0.3 10.202.0.4 10.202.0.5 10.202.0.6 10.203.40.2 10.203.40.3)
host_ip_telnet=(10.200.200.2 10.200.200.3 10.200.200.4)

host_ip_ssh_number=${#host_ip_ssh[*]}
host_ip_telnet_number=${#host_ip_telnet[*]}

while [ 1 ]

#执行ssh设备
min=0
#max=5
while [ "$min" -lt "$host_ip_ssh_number"  ]
do

#login_ssh_commend="ssh user@$host_ip_ssh[$min]"
filename_config=$(date +%F-%H:%M:%S)_${host_ip_ssh[$min]}

expect -f copy_stat-config ${host_ip_ssh[$min]} $filename_config ssh user@
sleep 5

 min=`expr $min + 1`
done  


#执行telnet设备
min=0
#max=5
while [ "$min" -lt "$host_ip_telnet_number"  ]
do

filename_config=$(date +%F-%H:%M:%S)_${host_ip_telnet[$min]}

expect -f copy_stat-config ${host_ip_telnet[$min]} $filename_config telnet
sleep 5

 min=`expr $min + 1`
done

done

监控脚本

jiankong1

#!/bin/bash
echo $(date) 启动jiankong1 >> jiankong.log
while [ 1 ]
do

ps -fe|grep do_copy_stat-config  |grep -v grep
#如果不为0,就是不存在这个进程
if [ $? -ne 0 ]
    then
        #重启进程
        cd /copy_config_switch
        nohup sh do_copy_stat-config &
        echo $(date) 重启do_copy_stat-config >> jiankong.log
fi

ps -fe|grep jiankong2  |grep -v grep
#如果不为0,就是不存在这个进程
if [ $? -ne 0 ]
        then
                #重启进程
                cd /copy_config_switch
                nohup sh jiankong2 &
        echo $(date) 重启jiankong2 >> jiankong.log
fi

sleep 10

done

jiankong2

#!/bin/bash
echo $(date) 启动jiankong2 >> jiankong.log
while [ 1 ]
do

ps -fe|grep do_copy_stat-config  |grep -v grep
#如果不为0,就是不存在这个进程
if [ $? -ne 0 ]
    then
        #重启进程
        cd /copy_config_switch
        nohup sh do_copy_stat-config &
        echo $(date) 重启do_copy_stat-config >> jiankong.log
fi

ps -fe|grep jiankong1  |grep -v grep
#如果不为0,就是不存在这个进程
if [ $? -ne 0 ]
        then
                #重启进程
                cd /copy_config_switch
                nohup sh jiankong1 &
        echo $(date) 重启jiankong1 >> jiankong.log
fi

sleep 10

done


如果想要同时停止两个jiankong脚本,可以使用
ps -ef | grep jiankong | grep -v grep | awk '{print $2}' | xargs kill -9 >/dev/null 2>&1

开机自启动

vim /etc/rc.d/rc.local
/copy_config_switch/jiankong1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值