奶爸

一次完整的duplicity备份的安装使用记录
服务器备份因为公司线上业务越来越重要,服务器安全和灾难恢复尤为重要。加上我们的代码放在自建的Git服务中,如果代码...
扫描右侧二维码阅读全文
15
2017/12

一次完整的duplicity备份的安装使用记录

服务器备份

因为公司线上业务越来越重要,服务器安全和灾难恢复尤为重要。加上我们的代码放在自建的Git服务中,如果代码丢失后果将会很严重。在很多安全稳定的备份方案中:

  • Backblaze b2
  • Online.net C14
  • Amazon S3
  • Aliyun OSS

我们选择了对国内网络友好以及工具方便的阿里云OSS作为备份服务。工具使用了阿里云修改的alicloud-duplicity,OSS无缝备份,支持增量全量、多文件夹备份,很方便,下面就从头来讲一下duplicity的使用吧~

安装

正好我这边有一个阿里云的 CentOS、一个 Google Cloud 的 Debian 9 服务器。就一起介绍一下如何安装及备份吧。

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

Debian

#安装依赖
sudo apt install librsync-dev python-pip python-dev -y
sudo pip install oss2 fasteners configparser setuptools

安装duplicity

  1. 下载,从GitHub下载 alicloud-duplicity
  2. 安装,执行安装命令sudo python setup.py install
  3. 验证,执行alicloud-duplicity -V验证安装是否成功。

配置

安装alicloud-duplicity之后,您需要配置OSS的访问域名Endpoint和访问密钥AccessKeyId/AccessKeySecret,才能用备份到OSS或从OSS恢复。alicloud-duplicity支持两种配置方式,配置文件或者环境变量。
如果配置文件和环境变量都配置了,环境变量的配置将被使用。

配置文件

配置文件默认在~/.alicloud.cfg,默认内容如下:

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

环境变量

在Linux终端执行以下命令,或者在加入用户环境配置文件(~/.bashrc~/.bash_profile)。

export ALICLOUD_OSS_ENDPOINT=http://oss-cn-hongkong.aliyuncs.com
export ALICLOUD_ACCESS_KEY_ID=Jwd12S**********ZBs
export ALICLOUD_ACCESS_KEY_SECRET=ir8Qt4h0kwx********u1SpmxM5QE

使用

详细的文档可以看duplicity官网,下面介绍几个常用的备份还原命令。

备份

  • 全量备份
sudo alicloud-duplicity full /pathtobackup oss://bucket-name/folder/
  • 增量备份
sudo alicloud-duplicity incr /pathtobackup oss://bucket-name/folder/
  • 自动选择模式
sudo alicloud-duplicity /pathtobackup oss://bucket-name/folder/  
sudo alicloud-duplicity --full-if-older-than 7D /pathtobackup oss://bucket-name/folder/  # 会对超过7天没全量备份的数据进行全量备份
  • 备份多个目录
alicloud-duplicity --include /pathtobackup --include /otherpathtobackup --exclude '*' / oss://bucket-name/folder/
  • 定时备份
    执行命令crontab -e编辑当前用户的定时任务,加入0 3 */1 * * backup.sh,backup.sh的内容参考:
sudo alicloud-duplicity --full-if-older-than 7D /pathtobackup oss://bucket-name/folder/

恢复文件

  • 恢复文件
sudo alicloud-duplicity --file-to-restore file1 oss://bucket-name/folder/ /pathtorestore/
  • 恢复文件夹
sudo alicloud-duplicity restore oss://bucket-name/folder/ /pathtorestore

其他

GPG加密

在加密命令中加入--encrypt-key选项就可以使用GPG加密你的备份了。比如:

sudo alicloud-duplicity --encrypt-key GPG-KEYID --full-if-older-than 7D /Naiba --exclude /Naiba/Download --exclude /Naiba/Apps/PUSH oss://xxxxxx/xxxxx

查看备份状态

#查看备份状态
sudo alicloud-duplicity collection-status oss://bucket-name/folder/
#列出最新备份中包含的文件
sudo alicloud-duplicity collection-status oss://bucket-name/folder/

特别注意

如果alicloud-duplicity的备份文件损坏,数据将无法恢复。对于常用数据应经常做全量备份。

Last modification:December 17th, 2017 at 10:34 am

Leave a Comment