阅读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 归档存储__常见问题_-阿里云