【云计算的1024种玩法】使轻松将服务器文件备份至 OSS
2017-12-22 00:00
555 查看
前言
在阿里云开发者论坛做版主也有 3 年了,见到过非常多的因为平时没有备份导致的服务器文件因为错误操作丢失、忘记续费丢失、服务器中毒丢失的情况。都是因为没有对服务进行备份。而备份这种东西一边来说都是平时百般不情愿的,但是一到用时真的是恨不得备份越新越全越好。备份可以有效的帮助我们解决例如挂马和加密勒索这样的攻击行为,相信 17年5月20日 的永恒之蓝大家还记忆犹新的吧。
备份也不应该是随便找一个地方进行存储,备份也应该保障高可靠性和低成本,这时候使用一些云厂商提供的开放性存储就有非常高的可靠性,像阿里云可以做到 99.99999999% 的数据可靠性,而且成本绝对比快照低得多,也正巧阿里云提供了非常方便的服务器备份工具,下面就让我们来介绍一下吧。
介绍
教程的主角是 alicloud-duplicity,它是在 duplicity 的基础上支持OSS存储的开源备份工具,alicloud-duplicity 支持 duplicity 的所有命令和参数。duplicity 是一款开源的备份工具,使用librsync 支持增量备份,节约本地存储空间,同时使用GnuPG加密数据。duplicity 能将数据轻松的备份到本地、共享存储和云存储等。使用 alicloud-duplicity 可以实现全量备份和增量备份并对其进行加密并且上传至 OSS。
要求 & 收获
需要使用到的产品:任意(包括非阿里云)服务器/ECS/轻量应用服务器(安装任意 Linux 发行版镜像)
2.阿里云 OSS 产品
通过本文你将讲学到:
使用 OSS
方便快捷的 OSS 服务器备份操作
阿里云访问控制(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,
三、 储存类型选择
低频访问,读写权限为
私有。因为备份并不会频繁访问,所以可以选择成本更低
低频访问,我们的别分肯定也不要别人访问,自然是
私有
四、 然后进入 访问控制(RAM) 创建一个专门为 OSS 准备的用户,一定要记录好 AccessKeyID 和 AccessKeySecret
五、 点击
策略管理,然后点击
新建授权策略
六、 直接点击
空白模板,然后输入
授权策略名称后,输入策略内容如下面:
{ "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名称
然后点击
新建授权策略保存
七、 为该用户进行授权
八、 选择我我们刚才创建的授权策略就行
服务器设置
创建配置文件运行:
cat >> ~/.alicloud.cfg << EOF [oss] endpoint = OSS的访问 EndPoint access_key_id = 刚才要保存的 AccessKeyID access_key_secret = 刚才要保存的 AccessKeySecret EOF
OSS的访问 EndPoint,可以在 Bucket 的详情页中看到:
如果是 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 restore oss://mf8-oss-back/images/ /root/restore/images/
就可以
/root/restore/images/中看到恢复的文件了。
相关文章推荐
- 【云计算的1024种玩法】使轻松将服务器文件备份至 OSS
- 【云计算的1024种玩法】使用 DTS 轻松迁移云数据库
- 【云计算的1024种玩法】第6招:打造离线下载服务器
- 【云计算的1024种玩法】10分钟轻松设置出 A+ 评分的 HTTP/2 网站
- 【云计算的1024种玩法】使用 DTS 轻松迁移云数据库
- 【云计算的1024种玩法】自己搭游戏服务器:我的世界Minecraft
- 【云计算的1024种玩法】ECS和轻量应用服务器的远程控制入门
- 【云计算的1024种玩法】自己搭游戏服务器:我的世界Minecraft
- 【云计算的1024种玩法】使用 NAS 文件储存低价获得好磁盘性能
- 【云计算的1024种玩法】用 Polr 轻松搭建企业级营销短链接工具
- 【云计算的1024种玩法】使用 NAS 文件储存低价获得好磁盘性能
- 【云计算的1024种玩法】10分钟轻松设置出 A+ 评分的 HTTP/2 网站
- 【云计算的1024种玩法】使用 NAS 文件储存低价获得好磁盘性能
- 【云计算的1024种玩法】ECS和轻量应用服务器的远程控制入门
- OSS-阿里服务器备份文件
- 五步轻松搞定Linux下的文件同步(备份)
- 【云计算的1024种玩法】海外数据中心+反向代理加速企业官网的海外访问体验
- python备份svn服务器文件脚本
- java实现阿里OSS服务器多文件打包ZIP下载,批量下载
- 实现客户端与终端服务器间文件轻松互传