用Linux服务器实现每天定时自动备份交换机配置文件

作为一名网络运维工程师,如果管理的路由、交换设备比较多的话,那么你是否也会跟我一样遇到这样的问题:设备配置经常调整,尤其是接入层交换机,万一哪天忘了保存配置,而第二天就发生了交换机掉电重启,你却又忘记了以前的配置,导致了网络恢复配置时间很长。

当你遇到这样的问题或者烦恼时,你是否也会去想:如果有一种方法,可以让交换机每天自动保存一下配置该多好。你进一步去考虑,如果交换机能每天不但能自己保存配置,还能把配置上传到服务器上一份,那该多好啊。

你认真看以下内容,或许对你有些启发。

在智能化高度发达的今天,很多交换机已经能够执行每天自动保存配置的功能了。下面以华为来举例。[switch]set save-configuration  backup-to-server server 192.168.1.1 transport-type ftp user admin password admin123 path /configbck

//set save-configuration   备份到服务器  服务器IP是192.168.1.1,备份方式是FTP,用户名是admin密码是admin123备份路径为/configbck//

[switch]set save-configuration delay 5     //5分钟后执行自动保存配置//

[switch]set save-configuration internal  43200    //每隔12小时循环一次//

[switch]dis saved-configuration time      //能够看到之前保存配置的方式//

下图是我在FTP服务器上看到的自动保存的配置文件

但是,交换机自动执行,并不是所有版本都支持的,也不是所有品牌都支持的,如果低版本不支持,是可以通过升级交换机的系统版本来实现的,但升级交换机系统,是需要断网的,也是有风险的。

下面,我贴一个我写好的用Linux来实现此备份的小脚本。此小脚本的功能是代替手工到交换机上保存配置,是完全登陆交换机来作的操作,不论交换机的版本高低,只要权限内能敲的命令,基本都可以实现。

脚本的执行过程是这样的:telnet到指定交换机--保存配置--通过交换机登陆到服务器--输入用户名密码--将交换机的配置文件上传到FTP服务器上。

下面是脚本内容(vi tel104.exp):

#!/usr/bin/expect                              //此处用的是expect,如果linux没有的话,需要yum安装一下//
set date [exec date "+%Y%m%d"]     //给date变量赋值,后面需要调用//
spawn telnet 192.168.1.104         //这是expect的一个命令,表示从服务器上telnet到192.168.1.104//
expect “Username:"                //在回显的字符串中匹配Username:,如果匹配到,执行下面//
send "admin\r"                        //向交换机发送admin字符串,即输入telnet到交换机的用户名//
expect "Password:"                  //在回显的字符串中匹配Password:,如果匹配到,执行下面//
send "[email protected]\r"        //向交换机发送[email protected]字符串。即输入tel到交换机的密码//

send "save\r"                          //向交换机发送save字符串,相当于在交换机上执行save命令//
send "Y\r"                //因交换机在save时,会有个交互过程,发送字符串Y,相当于在交换机输入Y//

send "ftp 192.168.1.1\r"          //向交换机发送ftp 192.168.1.1指令,相当于在交换机上输入ftp 192.168.1.1这条命令,意思就是登陆FTP服务器//
send "admin\r"      //发送字符串admin,即输入登陆FTP服务器的用户名//
send "[email protected]\r"          //发送字符串[email protected]。即输入登陆FTP服务器的密码//
send "put flash:/vrpcfg.zip /configbck/$date.zip\r"  //执行指令Put,交配置文件上传到FTP服务器//
interact              
~

说明:1、Linux服务器上要先按装expect,否则是不能执行expect命令的。

2、Linux服务器要安装telnet,否则是不能telnet的。安装都用yum安装就可以了。

3、向交换机发送什么指令,不同的交换机是不一样的,根据需要选择要send的字符串,也就是根据需要来指定你要在交换机的输入的命令。当然不只有备份,像reload /switchport mode trunk都是可以做的。

4、至于如何搭建FTP服务器,如何更深入地使用expect,请自行百度或者google。

下面我们要做的是,创建一个crontab自动执行任务

[[email protected] ~]# crontab -e

00 01 * * * /home/expect/tel104.exp   //1点0分,每日每月每周,执行绝对路径下的命令//
15 01 * * * /home/expect/tel105.exp   //1点15分,每日每月每周,执行绝对路径下的命令//

30 01 * * * /home/expect/tel105.exp  //1点30分,每日每月每周,执行绝对路径下的命令//

45 01 * * * /home/expect/tel106.exp  //1点45分,每日每月每周,执行绝对路径下的命令//

55 01 * * * /home/expect/tel107.exp  //1点55分,每日每月每周,执行绝对路径下的命令//

凌晨1点开始,每隔15分钟自动到一台指定设备保存配置文件到服务器。

这样就大功告成了。

时间: 2024-08-10 17:20:16

用Linux服务器实现每天定时自动备份交换机配置文件的相关文章

linux服务器本地和百度云备份脚本小试

本地单文件上传脚本,命名uf 这是在本机上做的测试,利用bpcs_uploader脚本实现,只是进行简单的封装,自动完善云端文件路径. 技术要点:使用dirname获取文件所在目录,使用pwd获取文件完整路径,并作为云端文件路径. #!/bin/bash cur_dir=$(cd "$(dirname "$1")"; pwd) name=$(basename "$1") /home/grm/bin/bpcs_uploader/bpcs_uploa

Linux下定时任务实现mysql自动备份并上传远程ftp

Linux下定时任务实现mysql自动备份并上传远程ftp 1.创建保存备份文件的目录:/home/mysql_datacd /homemkdir mysql_data2.创建备份脚本文件:/home/mysql_data/mysql_databak.shcd /homecd  mysql_datatouch mysql_databak.shvim  mysql_databak.sh #!/bin/sh DUMP=/usr/bin/mysqldump#mysqldump备份文件执行路径 OUT_

SQL Server 数据库定时自动备份(转载)

SQL Server 数据库定时自动备份 本文来源于转载:http://www.cnblogs.com/zhangq723/archive/2012/03/13/2394102.html 前提:在使用下面的备份方式之前需要确保你的Sqlserver Agent服务启动,切设置为自动启动.否则当你服务器重启了但是Agent服务没有启动,那么自动备份任务就不会执行 (一)使用TSql代码自动备份 在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本

MySQL数据库的定时自动备份

昨天做了MySQL数据库的备份基本操作的实验,今天试一下MySQL数据库的定时自动备份. 大概思路就是,首先为备份文件单独创建一个目录,然后再目录下创建Shell脚本里写上执行数据库备份的命令,并且给这个Shell脚本添加可执行的权限,最后给这个Shell脚本添加到crond计划任务,让它每天定时执行. 1.首先进入home目录,创建一个mysqlBackup的目录,然后进入这个目录 2.创建一个.sh后缀的文件, 3.编辑Shell脚本,备份所有数据库到/home/mysqlBackup目录下

SQL Server 数据库定时自动备份【转】

在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员每天守到晚上1点去备份数据库.要实现数据库的定时自动备份,最常用的方式就是使用SQL Server代理中的作业.启动SQL Server Agent服务,然后在其中新建作业,作业中添加1个备份步骤,类型是T-SQL脚本,然后在命令中输入如下SQL语句,该语句实现了对数据库TestDB1的完整备份,备份文件在C盘Backup文件夹中,文件名就是T

MS-SQL数据库定时自动备份

在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员每天守到晚上1点去备份数据库.要实现数据库的定时自动备份,最常用的方式就是使用SQL Server代理中的作业.启动SQL Server Agent服务,然后在其中新建作业,作业中添加1个备份步骤,类型是T-SQL脚本,然后在命令中输入如下SQL语句,该语句实现了对数据库TestDB1的完整备份,备份文件在C盘Backup文件夹中,文件名就是T

SQL Server 数据库定时自动备份

原文:SQL Server 数据库定时自动备份 SQL Server 数据库定时自动备份——每天定时备份,保留前8天的备份 利用SQL Server代理新建作业来定期备份 1)在数据库库的[SQL Server代理]->[作业],右键[新建作业] 2)在[常规]选项卡设置[名称](自定义) 3)在[步骤]选项卡中点击[新建],然后在弹出的窗口的[常规]选项卡中设置“步骤名称”(自定义):选择“类型”为“Transact-SQL 脚本(T-SQL)”(默认):选择“数据库”为你要备份的数据库:添加

使用SQL Server维护计划实现数据库定时自动备份

在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员每天守到晚上1点去备份数据库.要实现数据库的定时自动备份,最常用的方式就是使用SQL Server代理中的作业.启动SQL Server Agent服务,然后在其中新建作业,作业中添加1个备份步骤,类型是T-SQL脚本,然后在命令中输入如下SQL语句,该语句实现了对数据库TestDB1的完整备份,备份文件在C盘Backup文件夹中,文件名就是T

SQL Server 定时自动备份数据库

在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库,这篇文章介绍使用SQL Server 数据库代理中的作业定时自动备份数据库. 1.启动SQL Server代理服务,如下图: 绿色角标说明已启动. 2.右键“作业”,选择“新建作业”,弹出新建作业对话框,如下: 3.输入名称,所有者.类别默认不用修改,点击左侧“步骤”,在步骤面板中新建步骤,如下图: 输入步骤名(自定义)和命令. 命令代码: declare @name varchar(250) set @name='C:\My