我们使用rsync -a将一组虚拟机备份到外部USB驱动器。 du -sh报告的源目录是145G,但目标是报告181G。
这两个文件系统是ext3和块大小是一样的,那么有人可以解释什么是差异?
正如丹尼斯所说,这似乎是一个稀疏的文件问题。 一个例子可以是:
$ dd if=/dev/zero of=sparse.txt count=0 seek=1000 0+0 records in $ du sparse.txt 0 sparse.txt $ ls -l sparse.txt -rw-r--r-- 1 user user 512000 2010-03-22 11:54 sparse.txt
正如你可以看到du报告实际使用了多less个块,而ls显示了这个文件应该有多大。
-S,--sparse
尝试有效地处理稀疏文件,使其占用较less
目的地上的空间。 与 - 因为它的冲突
不可能以稀疏的方式覆盖数据。
注意:当目标是Solaris时不要使用此选项
“tmpfs”文件系统。 它似乎无法处理超过null的查询
地区正确,并最终破坏文件。
其他人已经告诉了稀疏文件,但还有另外一件事情:硬链接。 硬链接 – 文件(和磁盘上的空间)的多个名称通常用于系统分区(例如,在同一个二进制文件中实现的多个shell命令),并且它们不是通过带有“-a”选项的rsync专门处理的。 所以,例如一个有四个硬链接的文件将被存储为四个单独的文件。
尝试使用rsync -aH 。
使用rsync脚本,您是否删除目标上存在且不再位于目标上的项目? 如果您希望双方都拥有相同的副本,则需要在rsync例程中使用“–delete”标志。
"rsync -a --delete /source/ /destination/"
您也可以在string中注入“-n和-P”以分别提供干运行和进度指示器,以显示“–delete”选项会发生什么情况。