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

前言

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

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

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

相关推荐
宿辞19233 分钟前
LINUX中MYSQL的使用
android·linux·mysql
没有口袋啦1 小时前
《k8s 部署》常见报错类型1
linux·容器·kubernetes
巨龙之路2 小时前
什么是Ubuntu的Multipass
linux·运维·ubuntu
t198751282 小时前
使用zip命令在Ubuntu 20.04上进行文件夹压缩
linux·数据库·ubuntu
PleaseBrave2 小时前
记录:安装VMware、Ubuntu、ROS2
linux·ubuntu·vmware·ros2
等风来不如迎风去2 小时前
【ubuntu24.04】在 Ubuntu 上安装 `.deb` 包、软件
linux·运维·ubuntu
楼台的春风2 小时前
【Linux驱动开发 ---- 2.1_深入理解 Linux 内核架构】
linux·c++·人工智能·驱动开发·嵌入式硬件·ubuntu·架构
筑梦之路3 小时前
ubuntu 22.04设置时区和24小时制显示——筑梦之路
linux·运维·ubuntu
www_pp_5 小时前
# Linux:开源的力量与应用
linux