Hillstone 防火墙备份脚本

Hillstone 防火墙备份脚本

对于公司有多台防火墙备份的需求,为减轻工作量对多台物理防火墙进行自动备份(不限于防火墙,支持路由交换与安全等其他产品),本篇文章使用Linux系统shell脚本编写Hillstone自动化备份防火墙,定时归档,可配合自动上传脚本,将备份文件上传至阿里OSS,实现永久高可用备份,如果异常发送邮件/微信/短信等通知用户检查。

脚本文件使用说明:

一、安装expect

yum install expect lrzsz -y

二、安装vsftp

2.1创建目录并上传文件

mkdir scripts

上传脚本到/scripts目录内,并赋予可执行权限

2.2 运行脚本bash Vsftpd.sh并查看ftp信息

查看ftp相关信息,文件在:/root/ftppasswd.txt

三、运行备份脚本填写相关信息

FTP服务器IP地址

FTP用户名

FTP密码

接受邮件人邮箱

四、执行脚本查看邮箱

五、定时任务

如下如下定期执行脚本,修改backup.sh

将这些变量写入back.sh

制作定时任务即可

六、查看结果

七、脚本配置文件

第一列为数据中心、第二列为机房、第三列为防火墙IP、第四列为防火墙用户名、第五列为防火墙密码、第六列为防火墙ssh端口号、第七列为客户名称

每次只需更新此配置文件即可。

八、脚本文件

back.sh

#!/usr/bin/expect -f
set ip [ lindex $argv 0 ]
set user [ lindex $argv 1 ]
set password [ lindex $argv 2 ]
set port [ lindex $argv 3 ]
set host [ lindex $argv 4 ]
set ftpip [ lindex $argv 5 ]
set ftpuser [ lindex $argv 6 ]
set ftppwd [ lindex $argv 7 ]
spawn ssh -p $port [email protected]$ip
expect {
    "(yes/no)?"
        {
            send "yes\r"
            expect "password:"
            send "$password\r"
        }
        "password:"
    {
    send "$password\r"
    }
}
expect "*#"
send "export configuration startup to ftp server $ftpip user $ftpuser password $ftppwd $host\r"
expect "Export ok"
send "exit\r"
expect eof

backup.sh

#!/bin/bash
#mail:[email protected]
read -p "Please input ftp server ipaddress:" FTPIP
read -p "Please input ftp username:" FTPUSER
read -p "Please input ftp password:" FTPPWD
read -p "Please input Receive mailbox:" MAIL
config_file=/scripts/back_conf
backup_dir=/FTP
DATE=$(date +%Y%m%d)
if [ ! -d $backup_dir ];then
    /bin/mkdir $backup_dir
fi
cat $config_file | while read ADDRESS NAME IP USER PASSWD PORT FILENAME;do
if [ ! -d $backup_dir/$ADDRESS/$NAME ];then
    /bin/mkdir -p $backup_dir/$ADDRESS/$NAME
fi
./back.sh $IP $USER $PASSWD $PORT $FILENAME $FTPIP $FTPUSER $FTPPWD &>/dev/null
if [ $? -eq 0 ];then
    /bin/mv $backup_dir/$FILENAME $backup_dir/$ADDRESS/$NAME/$FILENAME"_"$DATE 
    /bin/echo "BACKUP $IP SUCCESS,BACKUP_FILE $backup_dir/$ADDRESS/$NAME/$FILENAME"_"$DATE" | /bin/mail -r "[email protected]" -s "$NAME 防火墙备份_成功!" $MAIL
else
    /bin/echo "BACKUP $IP SUCCESS,BACKUP_FILE $backup_dir/$ADDRESS/$NAME/$FILENAME"_"$DATE" | /bin/mail -r "[email protected]" -s "$NAME 防火墙备份_失败!" $MAIL
fi
done

back_conf

XA    西安    172.17.1.10    hillstone    hillstone    22    username

本片为自动备份hillstone防火墙脚本,可以配合上传至OSS,与监控告警脚本来实现一整套流程,其他脚本见我其他博客。

时间: 2024-10-12 13:36:45

Hillstone 防火墙备份脚本的相关文章

mysql分库备份脚本

#!/bin/bash #created by yangqiqi 2017-08-24 #创建备份用户 #grant select,lock tables,reload,super,file,show view on *.* to 'mysqlbackup'@'localhost' identified by 'my_password'; #grant execute on *.* to 'mysqlbackup'@'localhost' identified by 'my_password';

WEB页面,WEB环境版本,数据库,整站备份脚本

#!/bin/bash # #WEB页面,WEB环境版本,数据库,整站备份脚本 #当发生某个原因导致整个服务器无法恢复时,利用上面备份的相关数据即可重做一台一样的服务器 date_a=`date +%Y%m%d-%H%M%S` mkdir -p /web_bak/${date_a}/conf &> /dev/null mkdir -p /web_bak/${date_a}/web &> /dev/null mkdir -p /web_bak/${date_a}/mysql &a

mysql备份脚本

对extmail数据库进行每天01:00完全热备份,并可以完全恢复! 一.先建立备份脚本,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 vi mysql_extmail_bak.sh #!/bin/bash # Program #    use mysqldump to Fully backup mysql data per week! BakDir=/mysqlback#要备份到的目录 LogFile=/var/log/bak.log#备份记录日志

linux 自动备份脚本

首先我在/root/backup 目录下建立一个文件夹, #mkdir /root/backup/mysqlbackup 以后在每天五点钟,就会有一个文件保存在这里. 接着新建文件 #vim /root/mysqlautobak 输入: filename=` date +%Y%m%d ` mysqldump --all-databases -uroot -p(mysql密码)> /root/backup/mysqlbackup/mysql$file.sql 保存退出! 让它可以执行 #chomd

Xtrabackup全量备份/增量备份脚本

一.全量备份脚本 1.全量备份脚本 #!/bin/bash #Description:xtrabackup complete #Author:created by michael #2017-08-07 v0.1 # USER=root PASSWD=123456 BACKUP_DIR=/backup/mysql/complete DATE=$(date +"%F_%T") [[ -d $BACKUP_DIR ]] || mkdir $DATE_DIR innobackupex --u

分享一个MySQL分库分表备份脚本(原)

分享一个MySQL分库备份脚本(原) 开发思路: 1.路径:规定备份到什么位置,把路径(先判断是否存在,不存在创建一个目录)先定义好,我的路径:/mysql/backup,每个备份用压缩提升效率,带上时间方便整理 2.取数据库:抓取数据库名称,我用的awk和grep配合取数据库的名称(如果想按照表备份可以再细化一下)注意要用mysql -e选项 这样才能做成脚本 3.系统环境变量:因为用到了函数,所以非系统内置的命令 最好在脚本里面用 . /etc/profile  把系统当前的环境变量传过来

mysql数据库备份脚本

自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #20170329 #Define PATH定义变量 BAKDIR=/data/backup/mysql/`date +%Y-%m-%d` MYSQLDB=webapp MYSQLPW=backup MYSQLUSR=backup #must use root user run scripts 必须使用root用户运行,$UID为系统变量 if

mysql 备份脚本以及定时任务

数据是企业最宝贵的资源,作为运维人员备份数据库的数据是特别重要的一项工作,以下是个人查找资料以及个人总结所记录的mysql数据库备份脚本,记录在此作为学习和复习笔记. (1)分库备份脚本 #/bin/sh #version 0.1 MYUSER=root MYPASS=123123 #SOCKET=/data/3306/mysql.sock MYLOGIN="mysql -u$MYUSER -p$MYPASS " MYDUMP="mysqldump -u$MYUSER -p$

mysql全库备份/增量备份脚本

http://hongge.blog.51cto.com/ 生产环境中Mysql数据库的备份是周期性重复的操作,所以通常是要编写脚本实现,通过crond计划任务周期性执行备份脚本 mysqldump备份方案: 周日凌晨1点全库备份 周一到周六凌晨每隔4个小时增量备份一次 设置crontab任务,每天执行备份脚本 # crontab –e #每个星期日凌晨1:00执行完全备份脚本 0 1 * * 0 /root/mysqlfullbackup.sh >/dev/null 2>&1 #周一