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

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

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

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

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

    有人能解释一下为什么会发生这种情况吗?以下是我检查过的一些东西:

    • 两台机器都没有用完磁盘空间或内存。
    • 不存在权限问题;我有能力读取远程计算机上的所有文件,并可以写入目标目标。(此外,正如我在上一项中指出的那样,只要我一次不超过22个文件,我整个列表中的所有约50个文件都可以传输。)
    4 回复  |  直到 17 年前
        1
  •  1
  •   Lee Harold    17 年前

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

    如果您的使用确实需要明确指定要备份的每个文件,那么请使用单独的文本文件列出这些文件,并使用以下命令调用rsync --files-from 旗帜。

    我用过 --文件来自 选项。它工作得很好。rsync非常可靠,但许多配置选项可能会让学习变得混乱。例如,有一个 --cvs-exclude 标记从备份中排除所有元数据文件,不仅适用于CVS,也适用于SVN。非常有用,但绝对不容易发现。

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

        2
  •  1
  •   dirtside    17 年前

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

        3
  •  0
  •   womble    17 年前

    检查客户端和服务器,看看是谁造成了问题。它闻起来像rsync中的某种虫子。

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

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

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

    推荐文章