【云计算的1024种玩法】轻松将服务器文件备份至 OSS

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 教程的主角是 alicloud-duplicity,它是在 duplicity 的基础上支持OSS存储的开源备份工具,alicloud-duplicity 支持 duplicity 的所有命令和参数。duplicity 是一款开源的备份工具,使用librsync 支持增量备份,节约本地存储空间,同时使用GnuPG加密数据。

前言

在阿里云开发者论坛做版主也有 3 年了,见到过非常多的因为平时没有备份导致的服务器文件因为错误操作丢失、忘记续费丢失、服务器中毒丢失的情况。都是因为没有对服务进行备份。

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

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

介绍

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

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

要求 & 收获

需要使用到的产品:

  1. 任意(包括非阿里云)服务器/ECS/轻量应用服务器(安装任意 Linux 发行版镜像)
    2.阿里云 OSS 产品

通过本文你将讲学到:

  1. 使用 OSS
  2. 方便快捷的 OSS 服务器备份操作
  3. 阿里云访问控制(RAM) 的操作

安装

推荐操作系统: Ubuntu、Debian

一、安装系统依赖

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

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

image

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

image

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

image

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

image

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

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

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

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

七、 为该用户进行授权

image

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

image

服务器设置

创建配置文件

运行:

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

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

image

如果是 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-backOSS 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 的文件管理处就可以看到备份文件了:

image

三个就是加密后的文件。

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

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

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

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
2月前
|
存储 UED Windows
Windows服务器上大量文件迁移方案
Windows服务器上大量文件迁移方案
148 1
|
3月前
|
存储 监控 固态存储
【vSAN分布式存储服务器数据恢复】VMware vSphere vSAN 分布式存储虚拟化平台VMDK文件1KB问题数据恢复案例
在一例vSAN分布式存储故障中,因替换故障闪存盘后磁盘组失效,一台采用RAID0策略且未使用置备的虚拟机VMDK文件受损,仅余1KB大小。经分析发现,该VMDK文件与内部虚拟对象关联失效导致。恢复方案包括定位虚拟对象及组件的具体物理位置,解析分配空间,并手动重组RAID0结构以恢复数据。此案例强调了深入理解vSAN分布式存储机制的重要性,以及定制化数据恢复方案的有效性。
95 5
|
27天前
|
机器学习/深度学习 弹性计算 运维
云计算系列之阿里云ECS服务器管理实战
本文档介绍了阿里云ECS(Elastic Compute Service)的基本概念、实例管理、磁盘操作、快照与镜像功能及其应用场景,最后通过具体案例解析ECS的实际应用。ECS是阿里云提供的高效、可靠的云计算服务,支持多种业务需求,如Web应用、高并发网站、数据库等,帮助企业快速构建稳定安全的应用,提升运维效率,降低IT成本。文档还详细说明了ECS实例的创建方式、连接方法及日常管理操作,帮助用户更好地利用ECS服务。
60 2
云计算系列之阿里云ECS服务器管理实战
|
1月前
|
Python
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
这篇博客文章是关于如何使用Flask框架上传特征值数据到服务器端,并将其保存为txt文件的教程。
31 0
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
|
2月前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
54 4
|
1月前
|
前端开发 Docker 容器
主机host服务器和Docker容器之间的文件互传方法汇总
Docker 成为前端工具,可实现跨设备兼容。本文介绍主机与 Docker 容器/镜像间文件传输的三种方法:1. 构建镜像时使用 `COPY` 或 `ADD` 指令;2. 启动容器时使用 `-v` 挂载卷;3. 运行时使用 `docker cp` 命令。每种方法适用于不同场景,如静态文件打包、开发时文件同步及临时文件传输。注意权限问题、容器停止后的文件传输及性能影响。
155 0
|
3月前
|
Linux
Linux 服务器下载百度网盘文件
本教程指导如何使用 `bypy` 库从百度网盘下载文件。首先通过 `pip install bypy` 安装库,接着运行 `bypy info` 获取登录链接并完成授权,最后将文件置于指定目录并通过 `bypy downdir /Ziya-13b-v1` 命令下载至本地。
373 1
Linux 服务器下载百度网盘文件
|
3月前
|
弹性计算 监控 网络安全
解锁云端力量:ECS全攻略,从新手到专家的实战之旅!轻松掌握云计算核心技能,驾驭数字浪潮之巅!
【8月更文挑战第22天】云计算中的弹性计算服务(ECS)让企业和开发者能按需获取虚拟服务器,灵活配置CPU、内存等资源。本文从零开始指导ECS的基础操作与高级技巧,包括实例创建、SSH连接、Web应用部署及利用ELB和自动伸缩优化性能。同时介绍监控工具和数据备份方法,帮助您全方位掌握ECS的高效运用,满足业务需求并保障数据安全。
68 3
|
3月前
|
存储 安全 文件存储
【服务器数据恢复】Apple苹果Xsan文件系统卷宗误操作导致文件丢失数据恢复案例
客户因误操作删除了macOS服务器上的重要图片和视频文件,需紧急恢复。Xsan文件系统作为苹果专为高负载环境设计的64位簇文件系统,在未有专门恢复工具的情况下,常规RAW恢复仅能提取小部分连续存储的小文件,且无目录结构。通过专业的数据恢复流程,包括安全挂载、阵列重组,并使用专用工具解析文件系统以恢复目录结构,最终成功恢复丢失的文件。此案例突显了Xsan文件系统的特点及其恢复难度。
37 1
|
3月前
|
存储 JavaScript 前端开发
Vue中实现图片上传,上传后的图片回显,存储图片到服务器 【使用对象存储OSS】
这篇文章介绍了在Vue中实现图片上传到阿里云OSS对象存储服务的完整流程,包括服务端签名直传的前提知识、后端设置、前端组件封装以及图片上传和回显的效果展示。
下一篇
无影云桌面