AliCloudDuplicity
簡介
duplicity是一款開源的備份工具,使用librsync支援增量備份,節約本地儲存空間,同時使用GnuPG加密資料。duplicity能將資料輕鬆的備份到本地、共享儲存和雲端儲存等。alicloud-duplicity是基於duplicity、支援OSS儲存的開源備份工具,alicloud-duplicity支援duplicity的所有命令和引數。
適用場景
- 重要文件或資料的打包備份,遠端容災。
- 個人Linux主機的系統資料備份。
- 自建WebServer資料的日常或增量備份。
安裝
環境
- Linux
- Python 2.7
snap安裝
使用以下命令安裝alicloud-duplicity。
sudo snap install alicloud-duplicity --edge --devmode
提示:
- snap是類似於yum的包管理工具,詳細介紹及安裝方法請參看Docs。
原始碼安裝
CentOS
- 安裝依賴外掛。
sudo yum install https://mirrors.kernel.org/fedora-epel/7/x86_64/e/epel-release-7-10.noarch.rpm -y
sudo yum install python-devel librsync-devel python-pip -y
sudo pip install oss2 fasteners configparser
- 下載。從GitHub下載。
- 安裝。執行安裝命令,
sudo python setup.py install
。 - 驗證。執行命令
alicloud-duplicity -V
安裝成功會顯示版本號。
Ubuntu
- 安裝依賴外掛。
sudo apt install librsync-dev python-pip python-dev -y
sudo pip install oss2 fasteners configparser setuptools
- 下載。從GitHub下載。
- 安裝。執行安裝命令,
sudo python setup.py install
。 - 驗證。執行命令
alicloud-duplicity -V
安裝成功會顯示版本號。
配置
安裝alicloud-duplicity之後,您需要配置OSS的訪問域名Endpoint和訪問金鑰AccessKeyId/AccessKeySecret,才能用備份到OSS或從OSS恢復。alicloud-duplicity支援兩種配置方式,配置檔案和環境變數。
注意:
- 如果配置檔案和環境變數都配置了,環境變數的配置將被使用。
配置檔案
配置檔案為~/.alicloud.cfg
,配置檔案內容格式如下:
[oss]
endpoint = http://oss-cn-hangzhou.aliyuncs.com
access_key_id = Jwd12S**********ZBs
access_key_secret = ir8Qt4h0kwx********u1SpmxM5QE
環境變數
在Linux終端執行以下命令,或者在加入使用者環境配置檔案(~/.bashrc
或~/.bash_profile
)。
export ALICLOUD_OSS_ENDPOINT=http://oss-cn-hangzhou.aliyuncs.com
export ALICLOUD_ACCESS_KEY_ID=Jwd12S**********ZBs
export ALICLOUD_ACCESS_KEY_SECRET=ir8Qt4h0kwx********u1SpmxM5QE
使用
下面對OSS的alicloud-duplicity常用命令進行說明,完整的幫助資訊請參看Docs。
備份
- 全量備份
sudo alicloud-duplicity full /etc oss://bucket-name/keyfolder/
- 增量備份
sudo alicloud-duplicity incr /etc oss://bucket-name/keyfolder/
- 自動選擇備份型別
sudo alicloud-duplicity /etc oss://bucket-name/keyfolder/
sudo alicloud-duplicity --full-if-older-than 7D /etc oss://bucket-name/keyfolder/ # 對重要資料,應經常做全量備份,用--full-if-older-than指定全量備份時間間隔。
- 定時備份
利用crontab -e
設定每天凌晨3點自定執行指令碼timedbackup.sh,寫入0 3 */1 * * timedbackup.sh
。指令碼timedbackup.sh的內容如下:
sudo alicloud-duplicity --full-if-older-than 7D /etc oss://bucket-name/keyfolder/
- 備份多個目錄
alicloud-duplicity --include /etc --include /home/aliyun --exclude `**` / oss://bucket-name/keyfolder/
恢復
- 恢復資料夾
sudo alicloud-duplicity restore oss://bucket-name/keyfolder/ /home/tmp/
- 恢復特定檔案
sudo alicloud-duplicity --file-to-restore file1 oss://bucket-name/keyfolder/ /home/tmp/
其它
- 列出備份目錄列表
sudo alicloud-duplicity list-current-files oss://bucket-name/keyfolder/
- 檢視備份狀態
sudo alicloud-duplicity collection-status oss://bucket-name/keyfolder/
注意
alicloud-duplicity的備份檔案如果損壞,會導致資料無法恢復。特別是在增量備份時,如果有中間版本損壞,會導致該次之後的資料無法恢復。對重要資料,應經常做全量備份;對於不再修改的資料,應立即做一次全量備份。