Hillstone 防火墙备份脚本

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

脚本文件使用说明:

一、安装expect

yum install expect lrzsz -y 

二、安装vsftp

2.1创建目录并上传文件

mkdir scripts

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

wKiom1mB2YKhiIcjAAA5EsRLFqg464.png


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

wKioL1mB2cHyb2zjAABiMJmadcY622.png

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

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

wKiom1mB2hqRBl2LAAC6FVeoFu4720.png

FTP服务器IP地址

FTP用户名

FTP密码

接受邮件人邮箱

四、执行脚本查看邮箱

wKiom1mB29bROyCaAAEKZlJsjGs106.png

五、定时任务

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

wKiom1mB3Dqg2etSAACaraSnM8U320.png

将这些变量写入back.sh

制作定时任务即可

wKioL1mB3KbTFC6hAABeBcE0F5U201.png

六、查看结果

wKioL1mB3SDQJ9ZrAAJe1dncZus921.png

七、脚本配置文件

第一列为数据中心、第二列为机房、第三列为防火墙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 $user@$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:xuel@anchnet.com

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 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13454.html