一、准備工作
1、備份服務器 CentOS 7
CentOS Linux release 7.8.2003 (Core) | 3.10.0-1127.el7.x86_64
2、飛塔防火牆的配置
#使用CLI 啟用Fortigate SCP
config system global
set admin-scp enable
end
#啟用接口的SSH訪問
config system interface edit <interface name> set allowaccess ping https ssh end
3、CentOS備份服務器安裝工具sshpass,這個工具可以支持scp操作時自動輸入密碼
yum install -y sshpass
二、CentOS備份服務器找一個合適的路徑,全部文件和文件夾都在同一個路徑下即可
1、創建存儲備份文件的文件夾
mkdir -p /BackPath/bak
2、firewallbackup.sh 文件:
#!/bin/bash ######################################### #Function: Fortigate Sys_config Backup #Version: 1.0 ######################################### #Backup Account Passwords passwd="fg-login-password" #Temp Backup Path folderpath=$(date +%Y%m%d) #Generate Filename By Time filename=$(date +%Y%m%d-%H%M%S) #Gzip Filename bakfilename=$filename"-fw-config-backup" str="/BackPath/bak/"$bakfilename".tar.gz" str_path="./"$folderpath
cd /BackPath if [ ! -d $folderpath ]; then mkdir -p $folderpath else echo "Path Already Exists!" fi cd $folderpath while read line do hostip=$line tempfilename=$line"-"$filename"sysconfig" sshpass -p "$passwd" scp backup@$hostip:sys_config $tempfilename done < ../ip.txt
cd /BackPath
tar -czvf $str $folderpath
#Delete Temp File
if [ $? -eq 0 ]; then rm -rf $str_path
else
echo "Package Mission Fail!"
fi
3、創建ip.txt 文件,此文件與上面的firewallbackup.sh放在同一路徑下,這里的ip地址為飛塔防火牆的登陸地址,一行為一台設備
#cat /BackPath/ip.txt
192.168.1.1
192.168.2.1
192.168.3.1
4、配置CentOS 7的計划任務 crontab -e,如示例是將備份的firewallbackup.sh和ip.txt放到 /BackPath 這個路徑下,將操作結果的日志放到 /home路徑下,每天11點和23點自動備份一次
00 11 * * * /usr/bin/sh /BackPath/firewallbackup.sh >> /home/backup-info.log 2>&1 00 23 * * * /usr/bin/sh /BackPath/firewallbackup.sh >> /home/backup-info.log 2>&1
以上,備份文件后,會進行打包和壓縮
經測試,支持 FortiOS 5.x 6.x
###純原創###