在停滞的连接上强制 rsync 超时

Joh*_*ohn 6 rsync

我遇到了一个有缺陷的循环数据移动器节点问题,我正在从中同步数据。其中一个节点不断断开与我的数据来源的文件系统的数据连接,需要重新连接,这可能需要几分钟的时间。在此期间,该特定文件上的 rsync 不会中止,它只是挂起长达几分钟,直到下载继续。因为这是时间关键的数据,所以这不是一个可行的选择,而是应该在连接停止时尽快断开连接,然后重新连接(无论如何都会将负载平衡到下一个节点)。

谁能想到一种方法来告诉 rsync 中止已停滞超过 20 秒的传输?

损坏的数据移动节点的操作员对这个问题的反应很慢,他们意识到了这一点,但目前没有采取任何行动,所以我需要在最后找到解决方案。

我尝试过使用 --timeout 选项,但是当数据连接停止时这似乎不起作用。

EEA*_*EAA 0

如果您知道每次 rsync 运行的最大持续时间,您可以使用timeout

$ timeout 120 /usr/bin/rsync <options>
Run Code Online (Sandbox Code Playgroud)