备份分区的树结构和文件元数据的正确方法是什么?

备份分区的树结构和文件元数据的正确方法是什么?

我的磁盘上有非关键数据(主要是电影、音乐、图片、文本文件)。数据还不够重要,我无法对其进行备份。不过,我想保留“元数据”的备份,即每个文件:

  • 文件名和位置
  • 文件类型、大小和修改日期
  • 第一个 KB 的签名(计算速度更快,无论它是否具有比完整哈希更高的共谋率,或者不考虑第一个 KB 后的损坏,它只是在文件类型、大小的情况下识别“是什么”和 mdate 可能类似)

这样,如果我由于磁盘故障而丢失数据,我可以知道磁盘上有什么以及在哪里,如果我设法使用fsck/ foremost/etc 恢复文件...我可以自动将大部分恢复的文件放回他们的位置使用签名/文件类型/文件大小。

所以我发出以下命令metadata file output

#!/bin/sh
echo "$(stat -c'%n %s %b %i %Y' $1) $(file -bi $1) $(head -c1K $1 | md5sum)" >> "$2"

我看到了各种可能性:

  • 将所有文件元数据放入一个文本文件(find ./datamountpoint -exec metadata {} backup.txt \;)中,但文件名会存在大量冗余数据。

  • 复制树结构并用其元数据替换每个文件,并将其放入存档中。

#!/bin/sh
find ./datamountpoint -type d -exec mkdir ./backup{} \;
find ./datamountpoint -type f -exec metadata {} ./backup/{} \;
tar cvf 'backup.tar' ./backup

但我不知道哪一个在速度方面更有效,或者 tar 存档是否对文件数量、文件名长度有限制。也许有一个我不知道的工具已经可以实现我想要的功能。

那么,备份分区的结构和文件元数据的正确方法是什么?

相关内容