Hillstone 防火墙备份脚本
对于公司有多台防火墙备份的需求,为减轻工作量对多台物理防火墙进行自动备份(不限于防火墙,支持路由交换与安全等其他产品),本篇文章使用Linux系统shell脚本编写Hillstone自动化备份防火墙,定时归档,可配合自动上传脚本,将备份文件上传至阿里OSS,实现永久高可用备份,如果异常发送邮件/微信/短信等通知用户检查。
脚本文件使用说明:
一、安装expect
1
|
yum
install
expect lrzsz -y
|
二、安装vsftp
2.1创建目录并上传文件
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#!/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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#!/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
/bin/echo
"BACKUP $IP SUCCESS,BACKUP_FILE $backup_dir/$ADDRESS/$NAME/$FILENAME"
_
"$DATE"
|
/bin/mail
-r
"xuel@51idc.com"
-s
"$NAME 防火墙备份_成功!"
$MAIL
else
/bin/echo
"BACKUP $IP SUCCESS,BACKUP_FILE $backup_dir/$ADDRESS/$NAME/$FILENAME"
_
"$DATE"
|
/bin/mail
-r
"xuel@51idc.com"
-s
"$NAME 防火墙备份_失败!"
$MAIL
fi
done
|
back_conf
1
|
XA 西安 172.17.1.10 hillstone hillstone 22 username
|
本片为自动备份hillstone防火墙脚本,可以配合上传至OSS,与监控告警脚本来实现一整套流程,其他脚本见我其他博客。
本文转自 KaliArch 51CTO博客,原文链接:http://blog.51cto.com/kaliarch/1953118,如需转载请自行联系原作者