米饭粑 米饭粑
  • 首页
  • 好物推荐
    • 干货分享
    • 好物推荐
    • 免费资源
    • 非专业测评
  • 技术架构
    • Linux
    • HTTPS
    • Windows Server
  • 关于米饭
  • 教程&更多
    • 更多教程
    • 资讯新闻
    • 琐琐碎碎
    • 打赏米饭
    • 阿里云Ping
  • 友情链接
首页 › 技术架构 › 教程 › 使用 AliCloud Duplicity 将服务器文件备份至 OSS

使用 AliCloud Duplicity 将服务器文件备份至 OSS

妙正灰
5年前教程阅读 2,443

前言

备份这种东西一边来说都是平时百般不情愿的,但是一到用时真的是恨不得备份越新越全越好。备份可以有效的帮助我们解决例如挂马和加密勒索这样的攻击行为,相信 17年5月20日 的永恒之蓝大家还记忆犹新的吧。

而备份也不应该是随便找一个地方进行存储,备份也应该保障高可靠性和低成本,这时候使用一些云厂商提供的开放性存储就有非常高的可靠性,像阿里云可以做到 99.99999999% 的数据可靠性,而且成本绝对比快照低得多,也正巧阿里云提供了非常方便的服务器备份工具,下面就让我们来介绍一下吧。

介绍

教程的主角是 alicloud-duplicity,它是在 duplicity 的基础上支持OSS存储的开源备份工具,alicloud-duplicity 支持 duplicity 的所有命令和参数。duplicity 是一款开源的备份工具,使用librsync 支持增量备份,节约本地存储空间,同时使用GnuPG加密数据。duplicity 能将数据轻松的备份到本地、共享存储和云存储等。

使用 alicloud-duplicity 可以实现全量备份和增量备份并对其进行加密并且上传至 OSS。

安装

一、安装系统依赖

apt update && apt install librsync-dev python-pip python-dev git -y

二、安装py依赖

pip install oss2 fasteners configparser setuptools

三、安装程序

mkdir -p /root/src/
cd /root/src/
git clone https://github.com/aliyun/alicloud-duplicity.git
cd alicloud-duplicity
python setup.py install

四、验证

也就是查看一下运行相关命令能否出现版本号:

alicloud-duplicity -V

设置

OSS 设置

一、 首先我们要开通 OSS,这里有个 OSS 的幸运券可以获得一定优惠和免费额度。

二、 然后创建一个和阿里云 ECS 同地域的 OSS Bucket,

使用 AliCloud Duplicity 将服务器文件备份至 OSS-米饭粑

三、 储存类型选择 低频访问 ,读写权限为 私有 。因为备份并不会频繁访问,所以可以选择成本更低 低频访问,我们的别分肯定也不要别人访问,自然是 私有

使用 AliCloud Duplicity 将服务器文件备份至 OSS-米饭粑

四、 然后进入 访问控制(RAM) 创建一个专门为 OSS 准备的用户,一定要记录好 AccessKeyID 和 AccessKeySecret

使用 AliCloud Duplicity 将服务器文件备份至 OSS-米饭粑

五、 点击 策略管理,然后点击 新建授权策略

使用 AliCloud Duplicity 将服务器文件备份至 OSS-米饭粑

六、 直接点击 空白模板,然后输入 授权策略名称 后,输入策略内容如下面:

{
  "Statement": [
    {
      "Action": "oss:*",
      "Effect": "Allow",
      "Resource": [
        "acs:oss:*:*:mf8-oss-back",
        "acs:oss:*:*:mf8-oss-back/*"
      ]
    }
  ],
  "Version": "1"
}

由于我的 OSS Bucket 是 mf8-oss-back,所以 acs:oss:*:*:mf8-oss-back", 和 "acs:oss:*:*:mf8-oss-back/*" 后面是 mf8-oss-back 你可以改成自己的 OSS Bucket 名称

然后点击 新建授权策略 保存

七、 为该用户进行授权

使用 AliCloud Duplicity 将服务器文件备份至 OSS-米饭粑

八、 选择我我们刚才创建的授权策略就行

使用 AliCloud Duplicity 将服务器文件备份至 OSS-米饭粑

服务器设置

创建配置文件

运行:

cat >> ~/.alicloud.cfg << EOF 
[oss]
endpoint = OSS的访问 EndPoint
access_key_id = 刚才要保存的 AccessKeyID 
access_key_secret = 刚才要保存的 AccessKeySecret
EOF

OSS的访问 EndPoint,可以在 Bucket 的详情页中看到:

使用 AliCloud Duplicity 将服务器文件备份至 OSS-米饭粑

如果是 VPC 就用 VPC 的内网,经典就用经典的内网,内网速度更快同时不用流量费用。

例如:

cat >> ~/.alicloud.cfg << EOF 
[oss]
endpoint = http://oss-cn-shanghai-internal.aliyuncs.com
access_key_id = LTZIWWWMF8BIZxJI
access_key_secret = 9rm1Q5nlpyz155WWWMF8BIZDAW1DSn
EOF

创建环境变量

运行:

export ALICLOUD_OSS_ENDPOINT=OSS的访问 EndPoint
export ALICLOUD_ACCESS_KEY_ID=刚才要保存的 AccessKeyID ALICLOUD_ACCESS_KEY_SECRET=刚才要保存的 AccessKeySecret

使用

终于可以开始开心的使用了!

用法

备份

  • 全量备份

    alicloud-duplicity full /etc oss://bucket-name/keyfolder/
  • 增量备份

    alicloud-duplicity incr /etc oss://bucket-name/keyfolder/
  • 自动选择备份类型

    alicloud-duplicity /etc oss://bucket-name/keyfolder/  
    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的内容如下:

    alicloud-duplicity --full-if-older-than 7D /etc oss://bucket-name/keyfolder/
  • 备份多个目录

    alicloud-duplicity --include /etc --include /home/aliyun --exclude '**' / oss://bucket-name/keyfolder/

恢复

  • 恢复文件夹

    alicloud-duplicity restore oss://bucket-name/keyfolder/ /home/tmp/
  • 恢复特定文件

    alicloud-duplicity --file-to-restore file1 oss://bucket-name/keyfolder/ /home/tmp/

其它

  • 列出备份目录列表

    alicloud-duplicity list-current-files oss://bucket-name/keyfolder/
  • 查看备份状态

    alicloud-duplicity collection-status oss://bucket-name/keyfolder/

演示

例如,我要备份 /root/images/ 内的所有图片到 OSS,那么就运行:

alicloud-duplicity full /root/images/ oss://mf8-oss-back/images/*

这里的 /root/images/ 是本地要备份的目录,oss://mf8-oss-back 中的 mf8-oss-back 是 OSS Bucket 名称,/images/ 就是 OSS 中的目录了。

然后会出来一段:

Local and Remote metadata are synchronized, no sync needed.
Last full backup date: none
GnuPG passphrase: 
Retype passphrase to confirm:

就是要你输入加密这个备份的密码,因为即便备份到自己的 OSS 上依旧是应该要一个加密来保障安全的,万一手机丢了阿里云账号被登录了呢。

然后就会反馈备份内容了:

--------------[ Backup Statistics ]--------------
StartTime 1510751741.34 (Wed Nov 15 21:15:41 2017)
EndTime 1510751741.35 (Wed Nov 15 21:15:41 2017)
ElapsedTime 0.01 (0.01 seconds)
SourceFiles 12
SourceFileSize 104550 (102 KB)
NewFiles 12
NewFileSize 104550 (102 KB)
DeletedFiles 0
ChangedFiles 0
ChangedFileSize 0 (0 bytes)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 12
RawDeltaSize 100454 (98.1 KB)
TotalDestinationSizeChange 61719 (60.3 KB)
Errors 0
-------------------------------------------------

我们在到 OSS 的文件管理处就可以看到备份文件了:

使用 AliCloud Duplicity 将服务器文件备份至 OSS-米饭粑

三个就是加密后的文件。

然后我们就再恢复一下看看是否备份成功:

alicloud-duplicity restore oss://mf8-oss-back/images/ /root/restore/images/

就可以 /root/restore/images/ 中看到恢复的文件了。

OSS 备份 阿里云
赞(3)
在 Ubuntu/Debian 下安装 PHP7.2
上一篇
使用 Piwik 搭建一个自己的网站统计
下一篇
标签
Appnode Brotli CDN CentOS CentOS8 Debian DNS ECC ECS Ghost HTTP2 HTTPS IIS IPV6 Linux LiteSpeed MariaDB MySQL Nginx OLS OpenLiteSpeed OpenResty OSS PageSpeed PHP PHP7 QUIC Redis RHEL RHEL8 SSL TokuDB Ubuntu Windows Server 2016 Wordpress 云服务器 升级 域名 对象存储 微软 数据库 百度 笔记本 阿里云 阿里云ACP
归档
4月4日,全国哀悼,简单CSS代码将网站变成灰色
2年前
793 0
使用如下姿势预防阿里云 CDN 产生天价账单
2年前
1,031 2
阿里云多实例可用性升为99.995%,云服务SLA从此进入5位数时代
2年前
935 0
阿里云IPv6实践,从云服务到云安全
3年前
813 3
3
  • 3
Copyright © 2011-2022 米饭粑. Designed by nicetheme.
浙ICP备15006212号-1
  • 首页
  • 教程
  • 好物
  • 关于
  • 链接
  • 打赏
# 402 # # 113 # # 546 # # 548 # # 460 #
妙正灰
文科屌丝伪IT男一枚.
337
文章
385
评论
449
喜欢