我们在两个磁盘上有两个挂载点,两个都是完全相同的types。 两个磁盘的格式都是ext4。
执行带有从源同步到目标的选项的rsync命令。
执行rsync之后,将显示以下数据:
磁盘1 – 来源
315.8 GiB (339,148,905,125) - 476,038 files, 21,975 sub-folders.
磁盘2 – 目的地
315.8 GiB (339,098,108,411) - 476,038 files, 21,975 sub-folders.
区别
50,796,714字节( 50,796,714 Mb)
使用命令
rsync -r -t -p -o -g -v --progress --delete --ignore-existing -s /media/user/disk1 /media/user/disk2
为什么总的字节大小不同?
build议的答案是企图。 源和目的地之间的字节大小在大小均衡方面没有改善。
build议的回答命令包括-a和-l开关,添加存档和符号链接传输:
rsync -a -r -t -p -o -g -v -l --progress --delete --ignore-existing -s /media/user/disk1 /media/user/disk2
(结果)
磁盘1 – 来源
315.8 GiB (339,148,905,125) - 476,038 files, 21,975 sub-folders.
磁盘2 – 目的地
315.8 GiB (339,098,108,411) - 476,038 files, 21,975 sub-folders.
区别
50,796,714字节( 50,796,714 Mb)
问题没有解决。
超级用户发现类似的问题:
https://superuser.com/questions/442539/why-do-two-directory-hierarchies-that-are-in-sync-have-different-sizes
从ServerFault:
Rsync大小从源到目的地不同
要求提供du和df产出,结果是:
root@system:/# du -s /media/user/disk1
332172440 /media/user/disk1
root@system:/# du -s /media/user/disk2/
332119568 /media/user/disk2/
root@system:/# df /media/user/disk1
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdc 528316088 332243868 169212316 67% /media/user/disk1
root@system:/# df /media/user/disk2/
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdb 528316088 332190996 169265164 67% /media/user/disk2
因此disk1和disk2之间仍然有52,872的差异。
出于很多原因。 例如,您不使用-a或-l ,因此符号链接将转换为普通文件。 你不使用-H这样硬链接成为正常的文件。
而且在Unix / Linux上也有一个现象,就是一个被删除的文件仍然会消耗这个空间,直到所有打开的进程决定closures它为止。 在rsync之前可能在目的地打开文件?
最后,可能是Source的sparse files没有正确处理的问题,但是由于rsync通常很好地处理它们,所以不太可能。
PS rsync FAQ提供了一些其他的可能性( 来源 ):
- 如果你的目标比你的来源稍小,那么目录大小可能是不同的。 这仅仅是由于目录如何分配磁盘空间,并不能真正帮助。 我已经devise了一个快速的shell命令来将当前目录中的所有文件大小相加,而不包括目录大小:
echo `find . -type f -ls | awk '{print $7 "+"}'`0 | bc
- 在文件系统types,块大小,文件松弛开销等方面也有差异,这可能导致结果不同。
tune2fs -l /dev/your_block_device | grep -i 'block size'
- 如果您已经检查了所有这些,并且仍然受到无法解释的尺寸差异的困扰,那么我想指出,简单的尺寸对于数据复制操作的完整性或准确性没有太大的帮助。 它根本不检查文件的内容,它受上面解释的变化的影响。 我会build议使用一个实际的文件validation实用程序,如cfv来validation您的文件使用真正的密码哈希。 cfv实用程序与简单的
md5sum实用程序非常相似,只不过它是recursion的,速度更快,并且具有%完成栏。