最*强大*的远程文件复制?

Gar*_*chi 6 remote rsync file-copy files

我将如何通过非常不稳定的互联网连接复制文件?

有时,连接丢失,有时一台机器或另一台机器的 IP 被更改,有时两者都有,但动态 DNS 会捕获它。

您建议使用哪种工具或命令?

我听说rsync只复制差异非常好,但这意味着很多工作要么一次又一次地重新启动它,要么将它放入一段时间或 cronjob。

我希望有一些更简单和万无一失的东西。

附录:

它是关于不时地从一个站点复制几个目录,其中包含一些大于 5GB 的非常大的文件。复制后,两者都在本地移动到不同的位置。

我不能在网络级别上做任何事情,我不具备这样做的知识。

我宁愿不设置网络服务器来使用 wget。那是不安全的,似乎是一条迂回的路线。

我已经建立了 SSH 连接,现在可以 rsync,因为 rsync 已经安装在两台机器上(我将无法启动和运行 rsync 守护程序)。

关于如何通过 ssh进行智能 rsync以便在线路暂时切断时尝试继续的任何提示?但是当 ssh 连接中断时,rsync 不会成为问题。所以这样的事情(https://serverfault.com/questions/98745/)可能行不通:

while ! rsync -a .... ; do sleep 5 ; done
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

非常感谢!

加里

Gar*_*chi 4

好的,我已经在我的案例中找到了解决方案。我确实正在使用建议的while 循环。现在看起来像这样:

\n\n
while ! \\\nrsync -aiizP --append --stats . -e ssh user@host.com:./path/rfiles ; \\\ndo now=$(date +"%T") ; echo \xc2\xb7 Error at $now \xc2\xb7 ; sleep 5 ; done\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果没有 while 循环,我将不得不再次手动启动 rsync。现在,它就像一个魅力一样发挥作用。

\n\n

有趣的是:我在连接丢失后十分钟以及连接重新启动并再次运行后大约 9 分钟时收到错误!与此同时,终端窗口中没有任何反应。我想知道这个10分钟的超时是从哪里来的。

\n\n

非常感谢您的帮助。

\n\n

加里

\n\n

仅供参考:这是我收到的超时错误(10 分钟后):

\n\n
...\nthedirectory/afile.ext\nRead from remote host myhost.com: Operation timed out\nrsync: writefd_unbuffered failed to write 16385 bytes [sender]: Broken pipe (32)\nrsync: connection unexpectedly closed (394 bytes received so far) [sender]\nrsync error: unexplained error (code 255) at /SourceCache/rsync/rsync-40/rsync/io.c(452) [sender=2.6.9]\n
Run Code Online (Sandbox Code Playgroud)\n