閱讀695 返回首頁    go 阿裏雲 go 技術社區[雲棲]


AliCloud Duplicity

簡介

duplicity是一款開源的備份工具,使用librsync支持增量備份,節約本地存儲空間,同時使用GnuPG加密數據。duplicity能將數據輕鬆的備份到本地、共享存儲和雲存儲等。alicloud-duplicity是基於duplicity、支持AliCloud 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 sudo yum install python-devel librsync-devel python-pip sudo pip install oss2 fasteners configparser
  • 下載。從GitHub下載。
  • 安裝。執行安裝命令,python setup.py install
  • 驗證。執行命令 alicloud-duplicity -V 安裝成功會顯示版本號。

Ubuntu

  • 安裝依賴插件。 sudo apt install librsync-dev python-pip sudo pip install oss2 fasteners configparser setuptools
  • 下載。從GitHub下載。
  • 安裝。執行安裝命令,python setup.py install
  • 驗證。執行命令 alicloud-duplicity -V 安裝成功會顯示版本號。

提示:

  • 源碼安裝時,請先安裝Python 2.7

配置

安裝alicloud-duplicity之後,您需要配置OSS的訪問域名Endpoint和訪問密鑰AccessKeyId/AccessKeySecret,才能用備份到OSS或從OSS恢複。alicloud-duplicity支持兩種配置方式,配置文件和環境變量。

配置文件

配置文件為~/.alicloud.cfg,配置文件內容格式如下:

[oss]
endpoint = https://oss-cn-hangzhou.aliyuncs.com
access_key_id = Jwd12S**********ZBs
access_key_secret = ir8Qt4h0kwx********u1SpmxM5QE

環境變量

在Linux終端執行以下命令,或者在加入用戶環境配置文件(~/.bashrc~/.bash_profile)。

export ALICLOUD_OSS_ENDPOINT=https://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的備份文件如果損壞,會導致數據無法恢複。特別是在增量備份時,如果有中間版本損壞,會導致該次之後的數據無法恢複。對重要數據,應經常做全量備份;對於不再修改的數據,應立即做一次全量備份。

最後更新:2017-09-06 18:32:44

  上一篇:go  如何避免數據庫勒索事件及從刪庫到跑路的尷尬(阿裏雲數據庫峰會PPT)
  下一篇:go  護衛神·Nginx大師麵板上如何設置偽靜態