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

前言

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

最简单是就是 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 小时前
一个授予普通进程ROOT权限的Linux内核级后门:原理与实现深度解析
linux·运维·服务器·内核·root权限
小夏子_riotous1 小时前
openstack的使用——9. 密钥管理服务Barbican
linux·运维·服务器·系统架构·centos·云计算·openstack
六点的晨曦2 小时前
VMware安装Ubuntu的记录
linux·ubuntu
w6100104662 小时前
CKA-2026-Service
linux·服务器·网络·service·cka
HXQ_晴天3 小时前
castor什么时候已有的 .cdh 数据可以直接用,不需要重新从 root 转换?
linux
Mapleay3 小时前
Ubuntu 源的重要性!之 libgmp-dev 无法安装
linux·服务器·windows
Benszen3 小时前
Linux容器:轻量级虚拟化革命
java·linux·运维
念恒123064 小时前
Linux初识
linux·服务器·c++
开开心心就好4 小时前
能把网页藏在Word里的实用摸鱼工具
linux·运维·服务器·windows·随机森林·逻辑回归·excel
Lucis__4 小时前
Linux网络:基于协议栈原理实现UDP通信
linux·网络·udp