跨平台数据备份工具之restic详解

这篇具有很好参考价值的文章主要介绍了跨平台数据备份工具之restic详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 背景

Restic 是一款 GO 语言开发的开源免费且快速、高效和安全的跨平台备份工具。Restic 使用加密技术来保证你的数据安全性和完整性,可以将本地数据加密后传输到指定的存储。

Restic 同样支持增量备份,可随时备份和恢复备份。Restic 支持大多数主流操作系统,比如:Linux、macOS、Windows 以及一些较小众的操作系统 FreeBSD 和 OpenBSD 等。

二 restic简介

2.1 restic 支持类型

  • 本地存储
  • SFTP
  • REST Server
  • Amazon S3
  • Minio Server
  • OpenStack Swift
  • Backblaze B2
  • Microsoft Azure Blob Storage
  • Google Cloud Storage
  • 通过 Rclone 挂载的存储 (比如:Google Drive、OneDrive 等)

2.2 Restic 与 Rclone 区别

2.2.1 相同点

  • 两者都是基于命令行的开源文件同步和备份工具。
  • 两者都支持将文件备份到本地、远程服务器或对象存储。

2.2.2 异同

  • Rclone 面向的是文件同步,即保证两端文件的一致,也可以增量备份。
  • Restic 面向的是文件备份和加密,文件先加密再传输备份,而且是增量备份,即每次只备份变化的部分。
  • Rclone 仓库配置保存在本地,备份的文件会保持原样的同步于存储仓库中。
  • Restic 配置信息直接写在仓库,只要有仓库密码,在任何安装了 Restic 的计算机上都可以操作仓库。
  • Rclone 不记录文件版本,无法根据某一次备份找回特定时间点上的文件。
  • Restic 每次备份都会生成一个快照,记录当前时间点的文件结构,可以找回特定时间点的文件。
  • Rclone 可以在配置的多个存储端之间传输文件。

总的来说,Rclone 和 Restic 各有所长,要根据不同的业务需求选择使用。比如:网站数据的增量备份,用 Resitc 就比较合适。而常规文件的远程备份归档,用 Rclone 就很合适。

2.3 Restic设计原则

Restic 是一个可以正确进行备份的程序,其设计遵循以下原则:

  • 简单:备份应该是一个顺畅的过程,否则您可能会想跳过它。 Restic 应该易于配置和使用,以便在数据丢失的情况下,您可以直接恢复它。同样,恢复数据不应该很复杂。
  • 快速:用restic备份你的数据应该只受你的网络或硬盘带宽的限制,这样你就可以每天备份你的文件。如果需要太多时间,没有人会进行备份。恢复备份应该只传输要恢复的文件所需的数据,这样这个过程也很快。
  • 可验证:比备份更重要的是恢复,因此restic使您可以轻松验证所有数据是否可以恢复。
  • 安全:Restic 使用加密技术来保证您数据的机密性和完整性。假设存储备份数据的位置不是受信任的环境(例如,系统管理员等其他人能够访问您的备份的共享空间)。 Restic 旨在保护您的数据免受此类攻击者的侵害。
  • 高效:随着数据的增长,额外的快照应该只占用实际增量的存储。更重要的是,在将重复数据实际写入存储后端之前,应该对其进行去重,以节省宝贵的备份空间。

2.4 相关术语

  • Repository:备份期间产生的所有数据都以结构化形式发送并存储在存储库中,例如在具有多个子目录的文件系统层次结构中。存储库实现必须能够完成许多操作,例如列出内容。v0.12.0中已支持的存储服务包括:aws s3,minio server,Wasabi, Aliyun OSS, OpenStack Swift,Backlbaze B2,Azure Blob Storage,Google Cloud Storage,rclone** Blob:Blob 将多个数据字节与识别信息(如数据的 SHA-256 哈希及其长度),加密的数据块及元数据,其中元数据包括长度,SHA-256 哈希信息。数据块可以存放文件数据(data),也可以存放目录结构数据(tree)。Blob的大小在512KiB到8MiB之间,因此小于512KB的文件不会被拆分。Restic的实现目标是让Blob平均大小为1MiB。* Pack:一个包结合了一个或多个 Blob,例如在单个文件中。Restic中的单个数据文件,包括一个或多个Blob,一旦创建不再修改。一般只创建不删除,仅prune操作会删除不再被引用的数据。* Snapshot:快照代表在某个时间点已备份的文件或目录的状态。这里的状态是指内容和元数据,如文件或目录及其内容的名称和修改时间。* Storage ID:Pack文件的SHA256哈希值,通过这个ID可以在仓库中加载需要的数据文件。Restic将这个ID作为Pack的文件名,也就是文件的SHA256哈希值。Pack文件名即哈希值的设计也可以方便的检验数据文件是否被改动过。三 安装restic
    ==========

3.1 yum安装

yum install yum-plugin-copr
yum copr enable copart/restic
yum install restic 

3.2 docker安装

docker pull restic/restic 

更多信息可参考:github.com/Lobaro/rest…

3.3 源码安装

$ git clone https://github.com/restic/restic
 $ cd restic
 $ go run build.go 

3.4 配置自动补全

$ sudo ./restic generate --bash-completion /etc/bash_completion.d/restic 

四 实战

将保存备份的地方称为“存储库”。本章解释了如何创建(“ init”)这样的存储库。存储库可以存储在本地,也可以存储在远程服务器或服务器上。

4.1 sftp主机间备份

4.1.1 主机间免密钥互信

从主机A备份数据到主机B,需要主机A到主机B免密钥和互信

ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@106.53.117.41 
restic,网络,spring,系统安全,安全,web安全

4.1.2 在服务器A创建备份

restic,网络,spring,系统安全,安全,web安全

初始化备份,/data为 B服务器目录。

查看B服务器

restic,网络,spring,系统安全,安全,web安全

4.1.3 备份操作

  • 执行数据备份
restic -r sftp:root@106.53.117.41:/data backup ./ 
  • 查看备份
restic -r sftp:root@106.53.117.41:/data snapshots 
  • 查看备份内容
restic -r sftp:root@106.53.117.41:/data ls 875a2a32 
  • 恢复快照
restic -r sftp:root@106.53.117.41:/data restore 875a2a32 -t ./
restic -r sftp:root@106.53.117.41:/data restore 875a2a32 --target ./ 
restic,网络,spring,系统安全,安全,web安全
  • 删除备份
restic -r sftp:root@106.53.117.41:/data forget 875a2a32 

4.1.4 免密码

上面备份的时候,都需要输入密码,肯定不适合脚本自动备份,所以我们还需要使用--password-file参数来达到自动读取密码的步骤。

#先将密码,比如moerats保存在/root/resticpasswd文本中
echo 'xxzx@789' > /root/resticpasswd
#然后在备份命令中加--password-file参数来读取文本中的密码,这里以sftp为例
restic -r sftp:root@106.53.117.41:/data --verbose backup ./ --password-file /root/resticpasswd 

4.2 对象存储备份

支持基于s3协议的后端对象存储,例如minio或者腾讯/阿里对象存储

4.2.1 阿里云对象存储

$ export AWS_ACCESS_KEY_ID=<YOUR-OSS-ACCESS-KEY-ID>
$ export AWS_SECRET_ACCESS_KEY=<YOUR-OSS-SECRET-ACCESS-KEY>
 $ ./restic -o s3.bucket-lookup=dns -o s3.region=<OSS-REGION> -r s3:https://<OSS-ENDPOINT>/<OSS-BUCKET-NAME> init
$ restic -o s3.bucket-lookup=dns -o s3.region=oss-eu-west-1 -r s3:https://oss-eu-west-1.aliyuncs.com/bucketname init

restic -o s3.bucket-lookup=dns -o oss-cn-beijing.aliyuncs.com -r s3:https://xueltestoss.oss-cn-beijing.aliyuncs.com init 
  • 创建repository
export AWS_ACCESS_KEY_ID=LTAIxxxxxxxdZa9
export AWS_SECRET_ACCESS_KEY=XvHxxxxxxxxxxxxxxxxxJt3wb7
restic -o s3.bucket-lookup=dns -o s3.region=oss-cn-beijing.aliyuncs.com -r s3:https://xueltestoss.oss-cn-beijing.aliyuncs.com/xueltestoss init 
restic,网络,spring,系统安全,安全,web安全

对象存储上文件

restic,网络,spring,系统安全,安全,web安全
  • 免密钥
#先将密码,比如moerats保存在/root/resticpasswd文本中
echo 'xxzx@789' > /root/resticpasswd
#然后在备份命令中加--password-file参数来读取文本中的密码,这里以sftp为例 
  • 执行备份
restic -r s3:https://oss-cn-beijing.aliyuncs.com/xueltestoss --password-file /root/resticpasswd backup /data/ 
restic,网络,spring,系统安全,安全,web安全

其他恢复操作基本上和sftp的一致。

其他

restic 是一个很不错的数据备份方案,rclone是一个不错的数据同步方案,以及minio作为数据存储,集成在一起真的很不错。

参考文章

  • restic.readthedocs.io/en/v0.12.0/…
  • github.com/restic/rest…
  • restic.net/

restic,网络,spring,系统安全,安全,web安全文章来源地址https://www.toymoban.com/news/detail-831866.html

到了这里,关于跨平台数据备份工具之restic详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Dotnet 工具箱】跨平台图表库 LiveCharts2

    你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用! LiveCharts2 是一个简单、灵活、交互式以及功能强大的跨平台图表库。 LiveCharts2 现在几乎可以在任何地方运行,包括 Maui、Uno Platform、Blazor-wasm、WPF、WinForms、Xamarin、Avalonia、WinUI、UWP。 Liv

    2023年04月13日
    浏览(54)
  • 无损剪切音视频文件的跨平台工具: LosslessCut | 开源日报 0908

    Stars: 17.3k License: GPL-2.0 LosslessCut是一款跨平台的FFmpeg GUI工具,它可以对视频、音频和字幕等相关媒体文件进行快速无损操作。 该软件最主要的功能是无损剪切和裁剪音视频文件,可以使用它快速提取出好的部分并丢弃其余片段而不会损失质量,这非常适合用于处理从摄像机、

    2024年02月07日
    浏览(45)
  • WEB跨平台桌面程序构建工具对比(Electron、Tauri、Wails)

    WEB 跨平台 桌面应用程序 顾名思义就是用 JavaScript、HTML、CSS 等前端技术构建跨平台的桌面应用,WEB 负责 GUI 渲染并与后端(如 Node.js、Python、Rust 等)交互,从而突破自身无法操作 OS 层级资源的限制。其实现在如火如荼的 小程序 原理也类似,只是把后端换成宿主 APP (如微信

    2024年02月05日
    浏览(52)
  • flutterui构建工具,Java+性能优化+APP开发+NDK+跨平台技术

    面试的时候除了算法题,其他被怼成弟弟,没想到面试官给过了,一天面完三面并且一周之后收到了oc,觉得自己非常的幸运,终于得到了大厂的认可(虽然是颗白菜)。这里建议网友如果有自己亮点的话,还是可以勇敢大胆的尝试一下大厂,毕竟除了实力之外,运气与机遇也占

    2024年03月15日
    浏览(60)
  • XUbuntu22.04之跨平台容器格式工具:MKVToolNix(二百零三)

    简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏: Audio工程师进阶系列 【 原创干货持续更新中…… 】🚀 优质专栏: 多媒体系统工程师系列 【 原创干货持续更新中…… 】🚀 人生格言: 人生从来没有捷径

    2024年02月04日
    浏览(42)
  • 一款GUI跨平台自动化测试工具分享——Squish,支持Qt框架

    Squish GUI 测试自动化工具使跨平台测试应用程序变得容易,它对Qt的支持非常好。 点击获取Qt组件下载 在发布应用程序之前测试用户界面比以往任何时候都更加重要,当今用户需要从移动、桌面、Web和嵌入式应用程序中获得无缝的跨平台体验。由于应用程序经常在工厂、汽车

    2023年04月12日
    浏览(67)
  • 跨平台的开源Java生成PPT文件工具包,PPTShowV1.3更新啦

    项目官网:https://pptshow.cc/ 参考文档:https://pptshow.cc/book/(GitPage制作,打不开请科学冲浪) 开源地址:https://github.com/qrpcode/pptshow(有帮助记得点star呀~) 国内镜像:中文版本(Gitee)     Github镜像(Gitcode) PPTShow是一个开源的Java生成PPT文档工具包,支持2010版PPTX新特性。

    2024年02月09日
    浏览(48)
  • Github:分享一款开源的跨平台多功能远程控制和监控工具Spark

    Github:分享一款开源的跨平台多功能远程控制和监控工具Spark,github,开源,spark

    2024年02月19日
    浏览(48)
  • 【LocalSend】开源跨平台的局域网文件传输工具,支持IOS、Android、Mac、Windows、Linux

    工作前提条件:设备使用相同的局域网。 LocalSend is a cross-platform app that enables secure communication between devices using a REST API and HTTPS encryption. Unlike other messaging apps that rely on external servers, LocalSend doesn’t require an internet connection or third-party servers, making it a fast and reliable solution for local

    2024年02月17日
    浏览(55)
  • Qt/C++编写跨平台的推流工具(支持win/linux/mac/嵌入式linux/安卓等)

    跨平台的推流工具当属OBS最牛逼,功能也是最强大的,唯一的遗憾就是多路推流需要用到插件,而且CPU占用比较高,默认OBS的规则是将对应画布中的视频画面和设定的音频一起重新编码再推流,意味着肯定占用不少CPU资源,而很多时候尤其是视频监控行业,往往源头的摄像头

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包