保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

这篇具有很好参考价值的文章主要介绍了保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Borg 数据备份

Borg 的优势是

  • 高效:

    BorgBackup 会将文件按数据块去重,只有改动的数据块才会被备份。

    一个 25 GiB 的虚拟机磁盘文件,只改动了 1 GiB,那就只会新增备份这 1 GiB 的数据;

  • 高速:

    核心算法使用 C 编译,使用缓存快速跳过未改动过的文件以加快备份速度;

  • 加密:

    数据默认是 AES-256 加密并且 HMAC-SHA256 校验的;

  • 压缩:

    支持多种压缩算法,可自动检测数据是否属于可被压缩的类型;

  • 异地备份:

    原生支持 SSH 备份到异地服务器,也可使用 NFS 等网络存储;

  • 可挂载:

    可以直接用 FUSE 挂载一个备份存档读取里面的数据;

  • 跨平台:

    支持 Linux, macOS, BSD, Windows (Cygwin / WSL) 等多种平台;

  • 开源:

    安全可审计,易于修改。

来自:https://blog.csdn.net/allway2/article/details/107449842

Borg 安装

wget https://github.com/borgbackup/borg/releases/download/1.2.4/borg-linux64
mv ./borg-linux64  /usr/bin/borg
ln -s /usr/bin/borg /usr/bin/borgfs

Borg 备份

现在有 2 个目录,要把source里面的数据备份到backup里面,原始数据如下:

ls -ltr source/ backup/
backup/:
总用量 0

source/:
总用量 573056
-rw-rwxr-- 1 admin admin 545468729 5月   8 16:13 Smi1.fa
-rw-rwxr-- 1 admin admin  41336490 5月   8 16:14 Smi1.gff
1. 初始化 backup 目录 (这里测试,采用不加密的方式)
borg init --encryption=none backup
# borg init --encryption=repokey /home/karthick/borg/backup

# 初始化后目录结果如下,这里应该是索引文件和效验文件
ls -ltra backup/
# 总用量 60
# drwxrwxr-x 4 admin admin    34 5月   8 16:14 ..
# -rw------- 1 admin admin    73 5月   8 16:26 README
# -rw------- 1 admin admin   209 5月   8 16:26 config
# drwx------ 3 admin admin    15 5月   8 16:26 data
# -rw------- 1 admin admin    70 5月   8 16:26 hints.1
# -rw------- 1 admin admin   190 5月   8 16:26 integrity.1
# -rw------- 1 admin admin 41258 5月   8 16:26 index.1
2. 创建备份存档

当前备份的存档命令为2023-05-08-1。每天备份时,可以以日期为存档命令,方便回溯。

# 默认情况下,borg 使用lz4压缩算法,lz4压缩算法速度非常快,压缩比低
# --compression zstd,N N 为 1-22,数值越大,压缩比越大
# 软链接会被作为软链接存储,不会存储其链接的源文件
# 这里遇到一个很有意思的事情:我的一个备份里面存在软连接,mount备份的存档后,发现
# 我在源文件里面怎么改,这里就怎么改,实时更新,还以为是 borg 出了 bug。后来才发现
# 备份的是软连接。
# 删除掉的文件在后面的存档里也会被删除
borg create --stats --progress backup::2023-05-08-1 source/
# borg create --stats --compression zstd,10 --progress backup::2023-05-08-2 source/
3. 获取存档信息
borg info backup::2023-05-08-1

输出如下

Archive name: 2023-05-08-1
Archive fingerprint: 9a368357c37399a5d3c784829471b7eb4bb0596b2011de74d444363581f6c868
Time (start): Mon, 2023-05-08 16:42:34
Time (end):   Mon, 2023-05-08 16:42:37
Duration: 2.49 seconds
Number of files: 2
Utilization of max. archive size: 0%
------------------------------------------------------------------------------
                       Original size      Compressed size    Deduplicated size
This archive:              586.81 MB            315.08 MB            315.08 MB
All archives:              586.81 MB            315.08 MB            315.09 MB

                       Unique chunks         Total chunks
Chunk index:                     225                  225
------------------------------------------------------------------------------
4. 列出当前所有存档和存档内容
borg list backup
# 2023-05-08-1                         Mon, 2023-05-08 16:42:34 [9a368357c37399a5d3c784829471b7

# 列出存档内容
borg list backup::2023-05-08-1
# drwxrwxr-x admin  admin         0 Mon, 2023-05-08 16:14:30 source
# -rw-rwxr-- admin  admin  545468729 Mon, 2023-05-08 16:13:41 source/Smi1.fa
# -rw-rwxr-- admin  admin  41336490 Mon, 2023-05-08 16:14:05 source/Smi1.gff

# 列出存档内容,同时排除特定文件或目录
borg list backup::2023-05-08-1 --exclude Smi1
5. 新增一个文件测试备份
head -n 10000 source/Smi1.fa >source/NewSmi1.fa
borg create --stats --progress backup::2023-05-08-2 source/

输出如下,总大小没有变。相同内容的文件,没有增加额外存储。

------------------------------------------------------------------------------               
Repository: /home/admin/tes/backup
Archive name: 2023-05-08-2
Archive fingerprint: 25d7942b01376dad1f84f3efef276d30c680be5d83e76626427f3794143345a5
Time (start): Mon, 2023-05-08 19:24:59
Time (end):   Mon, 2023-05-08 19:25:01
Duration: 1.13 seconds
Number of files: 3
Utilization of max. archive size: 0%
------------------------------------------------------------------------------
                       Original size      Compressed size    Deduplicated size
This archive:              587.32 MB            315.36 MB            284.22 kB
All archives:                1.17 GB            630.44 MB            315.39 MB

                       Unique chunks         Total chunks
Chunk index:                     228                  451
------------------------------------------------------------------------------

给之前文件增加一些内容

cat source/NewSmi1.fa >>source/Smi1.fa
borg create --stats --progress backup::2023-05-08-3 source/

输出如下,新的备份存档只包含文件新增的部分内容,总的存档大小略微增加。

------------------------------------------------------------------------------               
Repository: /home/admin/tes/backup
Archive name: 2023-05-08-3
Archive fingerprint: 887d645b3e80779431b564feab24e1ee5a9e1184780c291a5b11134da8d368f1
Time (start): Mon, 2023-05-08 19:27:41
Time (end):   Mon, 2023-05-08 19:27:42
Duration: 1.12 seconds
Number of files: 3
Utilization of max. archive size: 0%
------------------------------------------------------------------------------
                       Original size      Compressed size    Deduplicated size
This archive:              587.83 MB            315.65 MB              1.75 MB
All archives:                1.76 GB            946.09 MB            317.15 MB

                       Unique chunks         Total chunks
Chunk index:                     231                  677
------------------------------------------------------------------------------

再次查看每个档案下备份的文件

# 每个档案下的存储都是当时备份时的全文件,可以看到档案3里面Smi1.fa的大小比档案1里面要大一些
borg list backup::2023-05-08-3
# drwxrwxr-x admin  admin         0 Mon, 2023-05-08 19:23:01 source
# -rw-rwxr-- admin  admin  545978689 Mon, 2023-05-08 19:27:39 source/Smi1.fa
# -rw-rwxr-- admin  admin  41336490 Mon, 2023-05-08 16:14:05 source/Smi1.gff
# -rw-rw-r-- admin  admin    509960 Mon, 2023-05-08 19:23:01 source/NewSmi1.fa

borg list backup::2023-05-08-1
# drwxrwxr-x admin  admin         0 Mon, 2023-05-08 16:14:30 source
# -rw-rwxr-- admin  admin  545468729 Mon, 2023-05-08 16:13:41 source/Smi1.fa
# -rw-rwxr-- admin  admin  41336490 Mon, 2023-05-08 16:14:05 source/Smi1.gff

# 直接使用diff比较2个档案,差异看的更清楚
borg diff backup::2023-05-08-1 2023-05-08-3
# [ctime: Mon, 2023-05-08 16:14:30 -> Mon, 2023-05-08 19:23:01] [mtime: Mon, 2023-05-08 16:14:30 -> Mon, 2023-05-08 19:23:01] source
#   +3.2 MB   -2.7 MB [ctime: Mon, 2023-05-08 16:14:30 -> Mon, 2023-05-08 19:27:39] [mtime: Mon, 2023-05-08 16:13:41 -> Mon, 2023-05-08 19:27:39] source/Smi1.fa
# added     509.96 kB source/NewSmi1.fa
6. 提取档案,恢复数据

提取时只会提取到当前目录,这一点需要注意。

# 新建一个要恢复数据到的目录
mkdir -p recover_dir1

# 切换目录
cd recover_dir1/

# 恢复存档backup::2023-05-08-1,注意路径的变化
borg extract -v --list ../backup::2023-05-08-1
source
source/Smi1.fa
source/Smi1.gff

# 恢复时是恢复的整个文件夹
ls
source

# 查看下时间和大小
ls -l source/
# 总用量 573056
# -rw-rwxr-- 1 admin admin 545468729 5月   8 16:13 Smi1.fa
# -rw-rwxr-- 1 admin admin  41336490 5月   8 16:14 Smi1.gff
7. 删除最早的一个档案,测试恢复第三个档案是否可以全部内容恢复

删除早期档案不影响当前数据的完整恢复。

cd ../
borg delete backup::2023-05-08-1

# 新建一个要恢复数据到的目录
mkdir -p recover_dir2

# 切换目录
cd recover_dir2

# 恢复存档backup::2023-05-08-3,注意路径的变化
borg extract -v --list ../backup::2023-05-08-3

# 查看文件大小
ls -ltsr source/
总用量 574052
 40368 -rw-rwxr-- 1 admin admin  41336490 5月   8 16:14 Smi1.gff
   500 -rw-rw-r-- 1 admin admin    509960 5月   8 19:23 NewSmi1.fa
533184 -rw-rwxr-- 1 admin admin 545978689 5月   8 19:27 Smi1.fa

# 测试查看文件是否一致,输出为空,表示完全一样
diff source/Smi1.fa ../source/Smi1.fa
8. 通过挂载恢复部分文件
cd ../
mkdir /tmp/backup3
borg mount backup::2023-05-08-3 /tmp/backup3
ls -ltrs /tmp/backup3/source/
# 总用量 574049
#  40368 -rw-rwxr-- 1 admin admin  41336490 5月   8 16:14 Smi1.gff
#    499 -rw-rw-r-- 1 admin admin    509960 5月   8 19:23 NewSmi1.fa
# 533183 -rw-rwxr-- 1 admin admin 545978689 5月   8 19:27 Smi1.fa

可以直接拷贝需要的文件出来

# 卸载备份的文件
borg umount /tmp/backup3

# 如果挂载时出现下面的错误,请执行 export 的三句话设置本地语言

#  File "borg/archiver.py", line 183, in wrapper
#  File "borg/archiver.py", line 1371, in _do_mount
#  File "borg/fuse.py", line 545, in mount
#  File "borg/fuse.py", line 278, in _create_filesystem
#  File "borg/fuse.py", line 355, in _process_archive
#  File "os.py", line 812, in fsencode
# UnicodeEncodeError: 'ascii' codec can't encode characters in position 25-29: ordinal not in range(128)

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
9. 修剪存档

定期清空一部分副本以减少空间使用

# --keep-daily 7 means to keep the latest backup on each day, up to 7 most recent days with backups (days without backups do not count). The rules are applied from secondly to yearly, and backups selected by previous rules do not count towards those of later rules. 
# 每周的存档保留最新的,最多保存最近 2 个周
borg prune -v --list --keep-weekly=2 backup/

# 每周的存档保留最新的,最多保存最近 6 个 月
borg prune -v --list --keep-monthly=6 backup/

# 指定对某些特定名字的存档应用此规则
# borg prune -v --list --keep-weekly=2 --prefix='{archive name}' /home/karthick/borg/backup/
10. —dry-run 是你的测试好帮手

不知道命令的操作会有什么后面时,加上--dry-run查看会运行哪些操作。

往期精品(点击图片直达文字对应教程)

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

机器学习

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...文章来源地址https://www.toymoban.com/news/detail-451823.html

到了这里,关于保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

    Restic 是一款 GO 语言开发的开源免费且快速、高效和安全的跨平台备份工具。Restic 使用加密技术来保证你的数据安全性和完整性,可以将本地数据加密后传输到指定的存储。 Restic 同样支持增量备份,可随时备份和恢复备份。Restic 支持大多数主流操作系统,比如:Linux、macO

    2024年02月21日
    浏览(53)
  • SQ工具|9|数据安全|ArcMap自动保存|ArcMap自动备份插件

    可解决在作业过程中停电、软件闪退等一系列问题导致的ArcMap自动退出而未来得及保存数据造成的数据丢失的问题 一、自动保存 在 开启编辑 的状态下,设置保存周期,状态选择开启点击确认即可开启自动保存任务(提示框位于右下角)    当一个保存周期内数据未变化时,

    2024年02月13日
    浏览(35)
  • 【MySQL进阶(一)】MySQL在Linux中的配置信息和数据备份工具

    MySQL在Linux中安装的话可以看这篇博客:MySQL在Linux中的安装,我觉得总结的很好。 当 MySQL 启动的时候,会从安装目录中加载软件数据,即使用 mysqld 工具初始化设置的 --basedir ,会从数据目录中读取数据,即设置的 --datadir 。这两个目录不要放在一起,避免 rm -rf mysql安装目录

    2024年02月16日
    浏览(57)
  • 第87讲:XtraBackup备份工具的核心技术要点及全库备份、恢复案例

    XtraBackup是Percona公司开源的一款MySQL InnoDB(包括XtraDB,MyISAM)数据库备份工具,基于InnoDB的崩溃恢复功能,由于支持不锁表的在线物理热备而被广泛应用于生产环境。 XBK备份恢复原理: XtraBackup备份执行的瞬间,会立即触发checkpoint机制,将已提交事务的脏页数据从内存刷新到

    2024年02月02日
    浏览(40)
  • oracle超详细语法和备份工具

    查看当前连接数据库的用户 查看数据库当前连接数 查看用户下的表 查看指定用户拥有的表 用户切换 解锁用户 新建用户 修改用户密码 删除用户 赋予用户所有权限 查看用户使用时间限制 查询密码有效时长 查看所有用户密码到期日 查看指定用户的过期时间 设置当前用户密

    2024年02月11日
    浏览(37)
  • MySQL多线程备份工具mydumper

    目录 一、mydumper简介 二、mydumper安装 1、yum安装mydumper 2、源码安装mydumper 三、mydumper参数介绍 四、myloader参数介绍 五、使用例子 mydumper 是一款社区开源的逻辑备份工具。该工具主要由 C 语言编写,目前由 MySQL 、Facebook 等公司人员开发维护。 参考官方介绍,mydumper 主要有以下

    2024年02月09日
    浏览(41)
  • SinoDB备份恢复工具之dbexport/dbimport

            dbexport和 dbimport是两个简单的备份恢复实用程序,无需任何提前配置即可运行。这两个实用程序可以在不同平台的SinoDB数据库服务器之间迁移数据,可以使用它们备份和还原小型数据库。   dbexport以文本格式导出数据库中所有对象的模式脚本和表数据文件。在将

    2024年04月14日
    浏览(44)
  • Robocopy:Windows 平台上强大的安全备份工具及使用教程

    自 Windows Vista 以来,Robocopy 已成为 Windows 标准配置的一部分。 该工具因其稳健性和可靠性而受到系统管理员和 IT 专业人员的高度评价。 通常可以在 Windows 10 上使用 Robocopy 成功完成对其他工具来说难以承受或导致错误消息的复制项目。如果您对 Robocopy 还不了解,那就和一

    2024年02月04日
    浏览(41)
  • 【Linux】Rsync远程同步及备份工具(Rsync简介、Rsync安装、rsync认证方式)

    rsync(Remote synchronization)是Liunx/Unix下的一个 远程数据同步工具 。 它可通过LAN/WAN(局域网/广域网) 快速同步多台主机间的文件和目录 ,并适当利用rsync算法(差分编码)以减少数据的传输。 rsync算法并不是每一次都整份传输,而是 只传输两个文件的不同部分 ,因此其传输

    2024年02月13日
    浏览(39)
  • 云备份客户端——客户端整体设计框架以及实用类工具实现

    客户端要实现的功能和服务端相比相对简单,客户端要实现的功能是 自动对指定文件中的文件进行备份,也就是定时对指定文件进行扫描,根据文件信息判断文件,符合要求(新文件或者被修改过的文件)进行上传 因此我们客户端大概需要实现下面三个模块 数据管理模块:

    2024年02月09日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包