代码之家  ›  专栏  ›  技术社区  ›  dirtside

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

  •  1
  • dirtside  · 技术社区  · 16 年前

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

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

    有人能提供可能发生这种情况的原因吗?以下是我检查过的一些东西:

    • 这两台机器都没有磁盘空间或内存。
    • 所有的文件都可以传输,只要我一次不超过22个。(换句话说,位置23及以上的特定文件没有什么特别之处。)
    • 没有权限问题;我能够读取远程机器上的所有文件,并可以写入目标。(此外,正如我在上一项中所指出的,只要一次传输的文件不超过22个,我整个列表中的~50个文件都可以传输。)
    • 如果使用-n(干运行)选项,则不会发生任何更改。
    4 回复  |  直到 16 年前
        1
  •  1
  •   Lee Harold    16 年前

    没有解释为什么要指定单个文件。最简单的方法是递归地rsync整个目录,并使用 --include --exclude 如果您需要更多的控制,则使用您想要匹配的适当模式进行标记。

    如果您的使用确实需要显式指定要备份的每个文件,则使用单独的文本文件列出这些文件,并使用 --files-from 旗帜

    我已经用过了 --文件来自 --cvs-exclude 用于从备份中排除所有元数据文件的标志,不仅针对CVS,而且针对SVN。非常有用,但绝对不容易发现。

    rsync文档中详细介绍了所有这些选项 here .

        2
  •  1
  •   dirtside    16 年前

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

        3
  •  0
  •   womble    16 年前

        4
  •  -1
  •   Joe Soul-bringer    16 年前

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

    自从 Rsync