AliCloud Duplicity

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
日志服务 SLS,月写入数据量 50GB 1个月
对象存储 OSS,内容安全 1000 次 1年
简介: alicloud-duplicity是基于duplicity的开源数据备份工具,支持增量备份、数据加密,完全兼容duplicity。本文介绍了alicloud-duplicity的使用场景、安装方法、常用命令等。

简介

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

适用场景

  • 重要文档或数据的打包备份,远端容灾。
  • 个人Linux主机的系统数据备份。
  • 自建WebServer数据的日常或增量备份。

安装

环境

  • Linux
  • Python 2.7

snap安装

使用以下命令安装alicloud-duplicity。

sudo snap install alicloud-duplicity --edge --devmode

提示:

  • snap是类似于yum的包管理工具,详细介绍及安装方法请参看Docs

源码安装

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
  • 下载。从GitHub下载。
  • 安装。执行安装命令,sudo python setup.py install
  • 验证。执行命令 alicloud-duplicity -V 安装成功会显示版本号。

Ubuntu

  • 安装依赖插件。
sudo apt install librsync-dev python-pip python-dev -y
sudo pip install oss2 fasteners configparser setuptools
  • 下载。从GitHub下载。
  • 安装。执行安装命令,sudo python setup.py install
  • 验证。执行命令 alicloud-duplicity -V 安装成功会显示版本号。

配置

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

注意:

  • 如果配置文件和环境变量都配置了,环境变量的配置将被使用。

配置文件

配置文件为~/.alicloud.cfg,配置文件内容格式如下:

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

环境变量

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

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

使用

下面对OSS的alicloud-duplicity常用命令进行说明,完整的帮助信息请参看Docs

备份

  • 全量备份
sudo alicloud-duplicity full /etc oss://bucket-name/keyfolder/
  • 增量备份
sudo alicloud-duplicity incr /etc oss://bucket-name/keyfolder/
  • 自动选择备份类型
sudo alicloud-duplicity /etc oss://bucket-name/keyfolder/  
sudo 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的内容如下:
sudo alicloud-duplicity --full-if-older-than 7D /etc oss://bucket-name/keyfolder/
  • 备份多个目录
alicloud-duplicity --include /etc --include /home/aliyun --exclude '**' / oss://bucket-name/keyfolder/

恢复

  • 恢复文件夹
sudo alicloud-duplicity restore oss://bucket-name/keyfolder/ /home/tmp/
  • 恢复特定文件
sudo alicloud-duplicity --file-to-restore file1 oss://bucket-name/keyfolder/ /home/tmp/

其它

  • 列出备份目录列表
sudo alicloud-duplicity list-current-files oss://bucket-name/keyfolder/
  • 查看备份状态
sudo alicloud-duplicity collection-status oss://bucket-name/keyfolder/

注意

alicloud-duplicity的备份文件如果损坏,会导致数据无法恢复。特别是在增量备份时,如果有中间版本损坏,会导致该次之后的数据无法恢复。对重要数据,应经常做全量备份;对于不再修改的数据,应立即做一次全量备份。

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
目录
相关文章
|
存储 编解码 算法
OpenCV2 计算机视觉应用编程秘籍:6~10
OpenCV2 计算机视觉应用编程秘籍:6~10
252 0
|
SQL 监控 Oracle
Oracle 数据库发生等待事件:enq: TX - row lock contention ,排查思路
Oracle 数据库发生等待事件:enq: TX - row lock contention ,排查思路
Oracle 数据库发生等待事件:enq: TX - row lock contention ,排查思路
|
存储 Ubuntu Linux
关于实体机安装Ubuntu 22.04.3-desktop-amd64遇见的一些问题
【10月更文挑战第5天】本文介绍了Ubuntu安装过程中常见的四个问题及其解决方案,包括分区设置、驱动问题、软件安装问题和启动问题。对于分区,推荐新手选择自动分区,手动分区需了解基本概念。驱动问题可通过安装相应硬件的Linux驱动解决。软件安装问题可更换国内镜像源或修复依赖关系。启动问题则可尝试进入恢复模式修复或根据错误提示信息寻求帮助。
602 2
|
9月前
|
编解码 API 开发工具
ModelScope魔搭25年2月版本发布月报
新春佳节的鞭炮声已经渐渐远去,在刚刚过去的一个月里,小鲸鱼给全球的开发者带来了一个不平凡的春节。DeepSeek-R1一系列开源模型的发布,给大家带来了惊喜和震动。所有人的热情,也给ModelScope社区带来了前所未见的巨大下载需求和流量,在这个月里,我们进行了数次紧急扩容和线上优化,尽量为大家提供更好的支持与服务。非常感谢大家的陪伴和理解,我们会持续进行平台优化和开源工具的建设,服务好整个开源社区。
375 9
|
算法 安全 前端开发
基于postMessage和BroadcastChannel实现浏览器跨Tab窗口通信的方法介绍
基于postMessage和BroadcastChannel实现浏览器跨Tab窗口通信的方法介绍
433 0
|
机器学习/深度学习 数据采集 数据可视化
Python实现支持向量机SVM分类模型线性SVM决策过程的可视化项目实战
Python实现支持向量机SVM分类模型线性SVM决策过程的可视化项目实战
Python实现支持向量机SVM分类模型线性SVM决策过程的可视化项目实战
|
消息中间件 SQL 关系型数据库
数据库如何实现读写分离以应对高并发?
【6月更文挑战第17天】数据库如何实现读写分离以应对高并发?
296 1
|
测试技术 API Python
掌握 Playwright:元素操作技巧大揭秘
Playwright Python 库简化了网页元素的交互,如点击和输入文本。使用 `click()` 方法可实现元素点击,`fill()` 方法用于在输入字段填充文本,而 `get_attribute()` 方法则用来获取元素属性值。这些功能在自动化测试和网页爬取中非常实用。
|
存储 JavaScript 前端开发
vue3【实用教程】声明响应式状态(含ref,reactive,toRef(),toRefs() 等)
vue3【实用教程】声明响应式状态(含ref,reactive,toRef(),toRefs() 等)
314 0
|
存储 SQL 人工智能
揭秘数据库技术:核心原理、应用场景与未来趋势
一、引言 在数字化和智能化的今天,数据库技术已经成为企业和组织不可或缺的基础设施