在 Fortigate上面建立一個名為backup的使用者,密碼為YourPassword,權限設定如下:
在 Linux 建立 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
| name="Fortigate-300D" dir="/backup" user="YOURUSERNAME" password="YOURPASSWORD" tftp_ip="TFTP_SERVER_IP" fg_devices="FORTIGATE_IP" date="$(date +"%Y%m%d")" yesterday="$(date -d '1 days ago' "+%Y%m%d")" for fg_device in $fg_devices ; do expect -c " set timeout 3 spawn ssh $user@$fg_device expect \"(yes/no)\" { send \"yes\r\"; exp_continue } expect \"*password:*\" set send_slow {1 0.05} send -s \"$password\r\" send_user \"$password\r\" expect \"FG\" send -s \"config global\n\" expect \"FG\" send -s \"execute backup full-config ftp $name-$date.cfg $tftp_ip $user $password\n\" expect \"FG*\" send -s \"exit\n\" interact" done
|
※注意 這個範例是有切VDOM的操作方式
當你寫完後記得調整一下操作權限
之後就可以把指令寫進排程中
1 2 3
| vim /etc/crontab ----------------------------------- 0 0 * * * root /home/backup/xxx.sh
|
因為我自己的設備很多,所以我有在寫一個總控制來呼叫shell
運作
不過說實在話,這樣的執行很沒效率,速度又慢。
それから,我又寫了一個Python版的,運作起來就是又快又準,日後想到再來分享給大家。(。◕∀◕。)