Rsync大小与源不同

前端之家收集整理的这篇文章主要介绍了Rsync大小与源不同前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用rsync和选项
-r for recursive
-l copy symlinks as symlinks
-t preserve modification time
-D preserve devices and specials
-v verbose
--prune-empty-dirs

源FS是ext4,目标是XFS.我复制了几百个文件夹,介于几百个演出到几个TB之间,它们都在不到1GB的大小差异范围内.但是这个特定的文件夹在源代码上是264GB,一旦我在它上面进行rsync,它就是286GB.这是一个巨大的差异,我不知道它有什么问题.

如果源ext4 FS有一些损坏,它是否可能没有报告正确的磁盘使用情况?我正在使用’du -skh’.

删除了整件事并重新启动了3次,结果相同.

解决方法

rsync FAQ页面列出了这些原因: https://sanitarium.net/rsyncfaq/#differentsizes

然而,唯一知道的方法是比较文件.

对于少量文件,您可以执行diff -r / mnt / data / mnt / data-BACKUP.但是,如果在中途停止,则无法从停止的位置重新启动.较旧的diff程序不能很好地处理二进制文件.

对于大量文件,我建议计算所有文件的哈希值并查找差异.这样,如果过程停止或中断,您可以继续没有太大困难.

以此脚本为例:

https://github.com/TomOnTime/tomutils/blob/master/bin/md5tree

md5tree /mnt/data        >/var/tmp/list.orig
md5tree /mnt/data-BACKUP >/var/tmp/list.backup
# NOTE: For these next 2 lines TAB means press the TAB key.
sort  -t'TAB' -k6 </var/tmp/list.backup >/var/tmp/list.backup.sorted
sort  -t'TAB' -k6 </var/tmp/list.orig >/var/tmp/list.orig.sorted
diff /var/tmp/list.orig.sorted /var/tmp/list.backup.sorted

猜你在找的Linux相关文章