个人数据保全计划:如何安全地备份数据

前言

备份数据说简单也简单,说复杂也复杂

最简单是就是 cp 命令,直接复制文件

而一旦需要备份的数据多了,就有很多门道了

如何显示进度?如何确保备份的数据不出错?

这里面还是有很多东西的

基本思路

我打算用原本给 QNAP 准备的 SSD 来安装 PVE

这个硬盘里有一些 docker 和 QTS 软件,需要备份的就是 docker 的数据

有几种方法:

  • rsync: rsync -a --info=progress2 /mnt/disk1/your-folder /mnt/disk2/
  • Midnight Commander (mc) (可视化)

使用mc

我最终选择了 mc,好用又简单。

使用 sudo dnf install mc 安装之后在终端打开

左右两栏分别浏览不同硬盘目录,使用 Ctrl+T 选择多个文件/目录,然后按 F5 复制

按回车开始复制,这界面有点复古美学,感觉很不错~

校验数据

复制完成之后,校验一下数据的完整性

最简单是用 rsync

bash 复制代码
rsync -avhn /path/to/src/ /path/to/target/

会得到类似这样的输出

复制代码
sending incremental file list

sent 426.77K bytes  received 2.90K bytes  859.33K bytes/sec
total size is 1.45G  speedup is 3,367.09 (DRY RUN)

sending incremental file list ➜ 只列出差异(现在没有列出具体文件 → 表示无变化)

默认情况下,rsync 的 dry-run 校验,判断两个文件是否"相同",依赖的是:文件大小是否一致和最后修改时间戳是否一致。

如果要更可靠一点,可以校验文件的 MD5 和 SHA,在 rsync 命令加上 --checksum(或 -c)参数

bash 复制代码
rsync -avhnc --info=progress2 /src/ /dst/
  • -c / --checksum:对比内容的校验和(不是时间戳、不是大小)
  • 这会导致 rsync 读取所有源和目标文件内容,计算并比对校验和 ,精度等同于 MD5 校验,但比 md5sum 更智能(可跳过已对比过的文件)

跑完命令的输出类似这样

bash 复制代码
sending incremental file list
              0   0%    0.00kB/s    0:00:00 (xfr#0, to-chk=0/18633)   

sent 680.95K bytes  received 2.90K bytes  91.18K bytes/sec
total size is 1.45G  speedup is 2,115.56 (DRY RUN)

解读一下这个输出:

  • xfr#0实际需要复制/替换的文件数量是 0 个
  • to-chk=0/18633:总共比对了 18633 个文件,已经全部检查完毕(为 0)
  • 0%0.00kB/s:是因为 dry-run 模式下没有真实数据流动,速率显示为零

输出 sha256sum 清单

如果你准备封盘、冷备、或未来很久不动它,可以考虑顺手打个 sha256sum 清单用于长期校验(可选):

bash 复制代码
find /home/deali/Backups/projects -type f -exec sha256sum {} \; > backup-sha256.txt

将来可以这样校验:

bash 复制代码
sha256sum -c backup-sha256.txt

如果文件地址改变了,可以用以下命令替换:

bash 复制代码
sed -i 's|/home/deali/Backups|/var/lib/vz/backups|g' project-sha256.txt

运行校验之后会输出每个文件的结果,比如:

bash 复制代码
/var/lib/vz/backups/softwares/navidrome/cache/images/af/e9/afe97c40758c021a2de1f781ab14d4d3fc30b244: OK

如果全部都没问题,则不会输出错误信息。

相关推荐
广州灵眸科技有限公司2 小时前
从手动三步到上电即连:4G模组systemd开机自连方案
linux·运维·服务器·开发语言·网络·人工智能·php
susplus3 小时前
【linux应用软件编程】数据库sqlite3
linux·数据库·sqlite
GeW4 小时前
RHCE的评分潜规则:这样做实验,每题多拿20%分数
linux
运维全栈笔记4 小时前
Windows 安装 WSL2 并运行 Ubuntu 24.04 指南
linux·网络·windows·ubuntu
FlightYe4 小时前
音视频修炼之基础理论(五):AAC格式与解析
android·linux·c++·音视频·aac
米糕闯编程5 小时前
鱼香ros2(一)在ubuntu中安装ros2
linux·运维·ubuntu·机器学习
Huangjin007_5 小时前
【Linux 系统篇(十八)】进程(六) :环境变量
linux·运维·服务器
ShineWinsu5 小时前
对于MySQL:数据库的操作的解析
linux·数据库·c++·mysql·面试·笔试·库的操作
cnnews5 小时前
Ubuntu 编译 postmarketOS
linux·运维·arm开发·ubuntu·github·音视频
w01_02_035 小时前
linux, 桌面, 自启动。
linux·运维·服务器