nickd Asked: 2010-03-23 02:55:28 +0800 CST2010-03-23 02:55:28 +0800 CST 2010-03-23 02:55:28 +0800 CST 使用 rsync 备份的目录比源大得多 772 我们使用 . 将一组虚拟机备份到外部 USB 驱动器rsync -a。报告的源目录为 145G du -sh,但目标报告为 181G。 这两个文件系统是ext3并且块大小相同,那么有人可以解释差异是什么吗? rsync 4 个回答 Voted Jacek Konieczny 2010-03-23T04:36:09+08:002010-03-23T04:36:09+08:00 其他人已经说过稀疏文件,但还有另一件事:硬链接。硬链接——文件的多个名称(和磁盘上的空间)通常用于系统分区(例如,用于在同一二进制文件中实现的多个 shell 命令),并且它们不是由带有 '-a' 选项的 rsync 专门处理的。因此,例如具有四个硬链接的文件将被存储为四个单独的文件。 尝试使用rsync -aH. Best Answer Dan Andreatta 2010-03-23T03:58:56+08:002010-03-23T03:58:56+08:00 正如丹尼斯所说,这似乎是一个稀疏文件问题。一个例子可以是: $ 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,报告实际使用了多少块,同时ls显示文件应该有多大。 Dennis Williamson 2010-03-23T03:18:28+08:002010-03-23T03:18:28+08:00 -S,--稀疏 尝试有效地处理稀疏文件,以便它们占用更少 目的地的空间。与 --inplace 冲突,因为它是 无法以稀疏方式覆盖数据。 注意:当目标是 Solaris 时不要使用此选项 “tmpfs”文件系统。它似乎无法处理对 null 的搜索 区域正确并最终损坏文件。 ewwhite 2010-03-23T04:25:27+08:002010-03-23T04:25:27+08:00 使用 rsync 脚本,您是否删除了目标上存在但不再位于目标上的项目?如果您希望在双方都有相同的副本,则需要在 rsync 例程中添加一个“--delete”标志。 "rsync -a --delete /source/ /destination/" 您还可以在字符串中注入“-n 和 -P”,分别提供试运行和进度指示器,向您展示使用“--delete”选项会发生什么。
其他人已经说过稀疏文件,但还有另一件事:硬链接。硬链接——文件的多个名称(和磁盘上的空间)通常用于系统分区(例如,用于在同一二进制文件中实现的多个 shell 命令),并且它们不是由带有 '-a' 选项的 rsync 专门处理的。因此,例如具有四个硬链接的文件将被存储为四个单独的文件。
尝试使用
rsync -aH
.正如丹尼斯所说,这似乎是一个稀疏文件问题。一个例子可以是:
如您所见
du
,报告实际使用了多少块,同时ls
显示文件应该有多大。使用 rsync 脚本,您是否删除了目标上存在但不再位于目标上的项目?如果您希望在双方都有相同的副本,则需要在 rsync 例程中添加一个“--delete”标志。
"rsync -a --delete /source/ /destination/"
您还可以在字符串中注入“-n 和 -P”,分别提供试运行和进度指示器,向您展示使用“--delete”选项会发生什么。