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 $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:[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,與監控告警腳本來實現一整套流程,其他腳本見我其他博客。