博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hillstone 防火墙备份脚本
阅读量:6074 次
发布时间:2019-06-20

本文共 2488 字,大约阅读时间需要 8 分钟。

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,如需转载请自行联系原作者
你可能感兴趣的文章
while((ch = getchar()) != '\n')
查看>>
好程序员web前端分享JS检查浏览器类型和版本
查看>>
Oracle DG 逻辑Standby数据同步性能优化
查看>>
exchange 2010 队列删除
查看>>
android实用测试方法之Monkey与MonkeyRunner
查看>>
「翻译」逐步替换Sass
查看>>
H5实现全屏与F11全屏
查看>>
处理excel表的列
查看>>
Excuse me?这个前端面试在搞事!
查看>>
C#数据采集类
查看>>
quicksort
查看>>
检验函数运行时间
查看>>
【BZOJ2019】nim
查看>>
四部曲
查看>>
LINUX内核调试过程
查看>>
【HDOJ】3553 Just a String
查看>>
Java 集合深入理解(7):ArrayList
查看>>
2019年春季学期第四周作业
查看>>
linux环境配置
查看>>
ASP.NET MVC中从前台页面视图(View)传递数据到后台控制器(Controller)方式
查看>>