网络设备自动备份shell脚本

这边以华为交换机为例写的脚本,其它产商设备根据设备命令修改脚本即可。

需求

批量备份网络设备配置文件到FTP服务器,并将配置文件所在目录自动压缩在以附件的形式发送到个人邮箱

环境

linux系统:Centos 6.6

网络设备:Huawei CE58/68交换机

iplist文件格式:192.168.1.1:CE6851

192.168.1.2:CE5855

脚本内容如下:

#!/bin/bash

for IP in `cat /app/backup/iplist`     //通过for循环读取iplist文件

do

address=`echo $IP |awk -F ":" '{print $1}'`                     //定义变量IP地址,使用awk命令以":"为分割符号取IP地址

name=`echo $IP |awk -F ":" '{print $2}'`                     //定义变量交换机系统名称

/usr/bin/expect << EOF                              //使用expect命令完成与交换机之间的交互操作

spawn ssh  -c des -q -o StrictHostKeyChecking=no [email protected]$address            //启动一个SSH会话

set timeout 5

expect "*password:"

send "[email protected]\r"

expect "*]:"

send "n\r"

expect "*>"

send "ftp ftp_server address\r"

expect "none)):"

send "ftpuser\r"

expect "*password:*"

send "[email protected]\r"

expect "*ftp]"

sleep 1

send "binary\r"

sleep 1

expect "*ftp]"

sleep 1

send "put vrpcfg.zip ${name}.zip\r"    //修改上传到FTP服务器的文件名称

sleep 1

expect "*ftp]"

sleep 1

send "quit\r"

sleep 1

expect "*>"

sleep 1

send "quit\r"

expect eof

EOF

done

time=$(date "+%y-%m-%d")                  //定义时间变量

/usr/bin/zip -r /app/${time}_config.zip /app/ftp/*.zip        //压缩ftp服务器上保存配置文件的目录

echo "this is test" | mail -s "NetworkConfig" -a /app/${time}_config.zip ******@qq.com     //通过mail命令发送邮件,echo输入邮件内容,-s选项配置邮件名称,-a选项制定附件目录



以上为脚本所有内容,也可以在脚本最后加上rm命令来将已经发送邮件的本地配置文件给删除,然后在配置计划任务周期执行脚本。

此脚本可以备份所有网络设备配置文件或者下发命令,只需要根据设备来修改expect里的内容即可。

原文地址:http://blog.51cto.com/sunjie123/2071370

时间: 2024-10-04 21:10:25

网络设备自动备份shell脚本的相关文章

Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本

说明:  1.备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是指备份执行时当天的日期),最后只保留最近7天的备份 2.上传/home/osyunweibak里面的备份文件到远程FTP服务器上,并且只保留最近7天的备份. 3.FTP服务器:192.168.21.139 端口:21 账号:osyunwei 密码:123456 osyunweibak为备份文件存放目

Linux 平台下 RMAN 全备 和 增量备份 shell 脚本

转:http://blog.csdn.net/tianlesoftware/article/details/5740630 全备脚本 以 nocatalog 模式为例: Shell 脚本: ######################################################################## ##   hot_database_backup.sh      ## ##   created by Tianlesoftware   ## ##        

debian mysql 定时自动备份的脚本

#!/bin/sh LOG=/var/log/mysql-backup.log # mysql db info USER_ROOT=XXXXXX USER_PWD=XXXXXXX # mysql data stored dir TODAY=`date +%F` STOREDIR=/mnt/tf-card/mysql-back/$TODAY mkdir $STOREDIR echo "*** PATH:$STOREDIR mysql-backup ***" >> $LOG #

centos7 开机自动执行shell脚本

centos7 开机自动执行shell脚本 90十80 关注 2018.12.23 09:37 字数 309 阅读 485评论 0喜欢 0 自己新建一个脚本,如centnet-service.sh 经过后面的几个步骤后,这个脚本在开机的时候会执行,在这个脚本里面可以写你开机的时候想执行的命令,如启动tomcat,oracle等服务 在脚本中输入启动服务的命令,如(开机启动tomcat): #!/bin/bash export JDK_HOME=/home/java/jdk1.8.0_91 exp

shell脚本 每天定时进行自动备份实战脚本~~~

定时备份脚本 在每天设定的时间内,准时准点的对我们要备份的数据信息进行备份:正因为每天备份大量的数据信息会叠加,对我们的磁盘产生负担,为了能够减轻我们磁盘容量的负担,又能实现我们每天的数据备份:我们今天开发的脚本呢,就是为了实现这样的需求:每天实现自动备份,当备份到第五天的时候,就把第一天的备份进行删除,只备份四天的备份,以此类推. 这样做的好处既不会影响我们的备份信息,又不会给我们的磁盘造成负担... 脚本代码 [[email protected] order]# vim back-up.sh

linux下的mysql自动备份shell

#!/bin/bash # mysql 的备份脚本 # 备份原理: # 1 # 使用列举出所有的库; # 2 # 使用每个库,列举出每张表,除了指定忽略的库; # 3 # 使用mysqldump 导出每一张表到文件:主机名/年月日/库/表.mysqldump.sql # 4 # 验证每张表的sql文件是否包含完成标志; # 5 # 压缩每个sql文件并删除本sql文件 # 6 # 强制删除超过x天的备份文件夹全部文件 # 7 # 发送处理日志到指定email # 8 # 请配合同步工具多处服务器

Bat脚本学习-4:Oracle自动备份还原脚本

从同事那弄到一份Oracle自动备份还原的脚本,看上去很强大,苦在bat语法不熟,查了半天文档,先弄明白了一小段 @echo off REM 在批处理中,我们可以用setloacl ENABLEDELAYEDEXPANSION这个命令来启用"延迟环境变量扩展" REM 在我们启用了"延迟环境变量扩展"后,当CMD在解释涵有嵌套格式的命令时,他会把嵌套的命令一条一条的先执行一次,然后再进行匹配操作 REM 这样我们的赋值操作就会完成.并且再"延迟环境变量扩展

linux 下RMAN备份shell脚本

RMAN备份对于Oracle数据库的备份与恢复简单易用,成本低廉.对于使用非catalog方式而言,将RMAN脚本嵌入到shell脚本,然后再通过crontab来实现中小型数据库数据库备份无疑是首选.本文提供了一个简单易用的基于linux shell下的RMAN备份脚本供参考.大家可根据自己的需要进行适当调整. RMAN备份相关方面的知识较多,可以参考:    RMAN 概述及其体系结构    RMAN 配置.监控与管理    RMAN 备份详解    RMAN 还原与恢复    RMAN ca

实用脚本----Linux下Jdk和Tomcat自动安装shell脚本总结

系统环境为:ubuntu 14.04 一.JDK 自动安装脚本 jdk自动安装bash shell脚本,截止今天(2014/10/15)亲测可用: sudo su #切换到root权限 mkdir /usr/local/java cd /usr/local/java #download jdk 1.7.67 wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-co