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

前言

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

最简单是就是 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

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

相关推荐
别猜别猜了1 小时前
Linux操作系统02
linux·运维·服务器
阿巴~阿巴~1 小时前
实战Linux进程状态观察:R、S、D、T、Z状态详解与实验模拟
linux·运维·服务器
天高云淡ylz1 小时前
各类电子设备镜像格式及文件系统统计
linux·windows·risc-v
南川琼语2 小时前
Linux——I/O复用
linux·运维·服务器
cui_win2 小时前
【网络】Linux 内核优化实战 - net.ipv4.tcp_ecn
linux·网络·tcp/ip
巫山老妖2 小时前
Linux流量分析:tcpdump&wireshark
linux·嵌入式
秃秃秃秃哇2 小时前
ubuntu18编译RealSense SDK 2.0
linux
神也佑我橙橙2 小时前
Ubuntu 22.04 安装英伟达驱动
linux·ubuntu·nvidia
不喝水的鱼儿3 小时前
Ubuntu 25.04安装搜狗输入法
linux·运维·ubuntu
不脱发的程序猿4 小时前
Linux守护进程
linux·嵌入式