閱讀392 返回首頁    go 人物


adup備份管理__最佳實踐_歸檔存儲-阿裏雲

簡介

adup是基於開源備份工具duplicity( https://www.nongnu.org/duplicity/ ),使用python語言實現,支持文件全量增量備份,支持小文件打包合並,提供了阿裏雲歸檔存儲的備份工具。duplicity本身是一個多功能本地和遠程的備份軟件,支持多種後端存儲介質如ftp、ssh和各類雲存儲。同時adup參照 https://github.com/thornomad/dt-s3-backup 進行優化封裝,方便進行定時任務的配置。

工具下載

adup_0.1.0.tar.gz 開發包

特性

  • 簡單易用的命令行使用方式
  • 使用rsync對變化數據進行增量備份,提高帶寬和存儲的高效利用
  • 使用標準文件打包壓縮格式GNU-tar,能夠對增量數據進行追加
  • 多種遠程存儲方式的支持,阿裏雲歸檔存儲,AWS等

安裝

debian發行版本

sudo bash deploy_debian.sh

redhat/centos發行版本

sudo bash deploy_rh.sh

安裝完成以後,備份腳本dt-oas-backup.sh 存放在/usr/local/bin/下。

使用步驟

配置

配置可執行文件dt-oas-backup.sh,可參照如下配置項示例修改

# 在redhat/centos發行版本中需要設置,debian環境中可以將其注釋
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

# 阿裏雲歸檔存儲和OSS賬號信息
export AliCLD_OAS_HOST="alicloud_oas_host"
export AliCLD_OSS_HOST="alicloud_oss_host"
export AliCLD_ACCESS_
export AliCLD_ACCESS_KEY="alicloud_access_key"

# 簽名
export PASSPHRASE="gpg_passphrase"

# 備份目錄
ROOT="/home/"

# 遠程阿裏雲歸檔存儲vault
DEST="oas+https://oas-backup-101"

# 匹配包含的備份路徑
# > 注:INCLIST的路徑不要以'/'結束,否則隻會上傳目錄結構而沒有真實文件內容
INCLIST=( "/home" )

# 匹配排出的備份路徑
EXCLIST=( "/home/xuser" )

# 日誌存放目錄
LOGDIR="/tmp/"

# duplicity可執行文件路徑,一般在python所在路徑的bin目錄下
DUPLICITY="path_to_python/bin/duplicity"

執行

  • 全量備份
bash dt-oas-backup.sh --full

注:第一次執行備份時,建議執行全量備份。

  • 增量備份
bash dt-oas-backup.sh --backup
  • 校驗備份集
bash dt-oas-backup.sh --verify
Verify complete.  Check the log file for results:
>> /tmp/duplicity-2015-11-19_10-02.txt
  • 列出備份文件列表
bash dt-oas-backup.sh --list-current-files
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: Thu Nov 19 10:01:32 2015
Wed Oct 21 10:12:14 2015 .
Tue Oct 20 15:28:23 2015 core
Mon Aug 31 09:44:12 2015 core/__init__.py
Wed Aug 19 09:51:05 2015 core/asyncoro.py
Mon Sep 28 17:20:57 2015 core/job.py
Wed Aug 19 16:29:09 2015 core/policy.py
Wed Aug 19 21:03:34 2015 core/resource.py
Wed Sep 23 10:33:42 2015 core/scan.py
  • 恢複單個文件

在源文件保留的前提下,可以進行MD5進行校驗

bash dt-oas-backup.sh --restore-file core/job.py /tmp/j.py
YOU ARE ABOUT TO...
>> RESTORE: core/job.py
>> TO: /tmp/j.py

Are you sure you want to do that ('yes' to continue)?
yes
Restoring now ...
  • 設置cron定時任務

以每天淩晨2點進行備份為例

crontab -e
0 2 * * * bash /usr/local/bin/dt-oas-backup.sh --backup

最後更新:2016-11-23 17:16:04

  上一篇:go Java SDK實例程序__最佳實踐_歸檔存儲-阿裏雲
  下一篇:go 歸檔存儲__常見問題_-阿裏雲