為 Oneinstack 增加通過 FTP 備份到遠端主機的功能
作者:wiLdGoose 釋出時間:2019 年 4 月 27 日 分類:技術 Technology
Oneinstack 有一個備份配置指令碼:backup_setting.sh 及備份指令碼:backup.sh。目前已經支援本地備份、遠端主機備份及諸如阿里雲、七牛雲等各種雲的備份。雖然同時支援多種方式進行備份,但同一種備份方式只能選一次,譬如不能同時向兩個遠端主機進行備份,且只能通過 ssh 方式。在比較看重異地災備的情況下,多遠端主機備份的需求不能滿足;在不方便開啟外網 ssh 的情況下,這個指令碼也不能滿足。
面對前述情況我做了一些調整:
1、Oneinstack 自帶備份指令碼只進行本地備份和各種雲的備份。預設本地備份路徑是 /data/backup,通過觀察備份檔名的規律可得出:
ls -lah /data/backup/*20190101*
可匹配到當日備份成功的新檔案。
2、遠端備份機搭建 FTP 服務,一般 VPS 需要開啟被動模式支援,防火牆配置好被動模式的埠段。
3、本地提前安裝好 FTP 客戶端:
yum -y install ftp
需要每向一臺遠端備份機上傳,便增加一個指令碼:
#!/bin/bash
ftp -n<<!
open REMOTE_HOST_IP REMOTE_PORT
user FTP_USER FTP_PASSWD
binary
hash
cd /
lcd /data/backup
prompt
mput *$(date "+%Y%m%d")*
close
bye
!
注意自行修改指令碼中大寫字母部分的配置,也可拎出來做變數配置。若有問題可在 ftp 後面加 -v 或 -d 引數,輸出對端返回和開啟 debug 模式,以進一步除錯。
測試通過後就可以放 crontab 了,需要備份到幾個地方就開幾個指令碼。再也不用擔心神馬地震、海嘯、核武,美滋滋。
- EOF -