rsync挂起指定了许多远程文件

时间:2009-01-31 02:49:07

标签: rsync

当远程计算机使用rsyncd时,使用以下rsync命令可以将大量远程文件复制到本地计算机:

rsync -R hostname ::'module / path1 / file1 module / path2 / file2 module / path3 / file3 module / path4 / file4'/ local / path

但是,如果文件数太大,rsync会挂起,而不会在目标位置创建文件。我正在测试的环境中的限制是22.有22个文件,它会在几秒钟内完成;有23个或更多文件,它会无限期挂起。

任何人都可以说明为什么会这样吗?这是我检查过的一些事情:

  • 两台机器的磁盘空间或内存都不足。
  • 所有文件都可以传输,只要我一次不超过22个。 (换句话说,对于位置23及以上的特定文件,它并不特别。)
  • 没有权限问题;我能够读取远程计算机上的所有文件,并可以写入目标目标。 (另外,正如我在前面的项目中所提到的,只要我一次不超过22个,我的整个列表中的所有~50个文件都可以被传输。)
  • 如果我使用-n(干运行)选项,则没有任何变化。

4 个答案:

答案 0 :(得分:1)

好的,经过进一步的测试,它似乎与参数长度有关。我没有确切的长度,但我尝试了另一组25个文件,路径/文件名更短,并且它正常工作。所以我想我只需要限制命令的长度。屁股。 :\

答案 1 :(得分:1)

没有解释为什么要指定单个文件。最简单的方法是递归地对整个目录进行rsync,如果需要更多控制,可以使用--include--exclude标志以及要匹配的相应模式。

如果您的用法确实需要明确指定要备份的每个文件,请使用单独的文本文件列出这些文件并使用--files-from标志调用rsync。

我使用了--files-from选项。它运作良好。 rsync非常可靠 - 但是许多配置选项会使学习变得混乱。例如,有一个--cvs-exclude标志可以从备份中排除所有元数据文件,不仅适用于CVS,还适用于SVN。非常有用,但绝对不容易被发现。

所有这些选项都在rsync文档here中详细说明。

答案 2 :(得分:0)

划分客户端和服务器,看看是谁造成了问题。它闻起来像rsync中的某种bug。

答案 3 :(得分:-1)

让我们假设这是一个错误而不是预期的行为。

由于Rsync是一个开源项目。您可以下载源代码,找到错误并为每个人上传修复程序。您应该先检查是否使用了最新版本。