rsync 在传输几个文件后挂起(Bash for Windows 到 FreeBSD)

rsync 在传输几个文件后挂起(Bash for Windows 到 FreeBSD)

我正在 Windows 10 Pro PC 上使用“Bash on Ubuntu on Windows”将我的媒体库备份到充当我的 NAS 的 FreeBSD 服务器(它运行 NAS4Free)。这曾经工作得很好,但最近停止工作了。由于我没有更改任何内容,因此我认为更改来自其中一个 Windows 更新,但不确定。

无论如何,这就是发生的事情。复制几个文件后,rsync 传输就挂起。我已经让它运行了一夜来确认,但它只是挂了几个小时。当我通过向终端发送 CTRL + C 手动终止任务时,我收到一条错误消息,一段时间后(大约 30 秒)程序停止:

arnaud@CLAVAIN:~$ rsync -arv --delete --no-compress /mnt/e/Music/ [email protected]:~/pool1/lolilol/music
[email protected]'s password:
sending incremental file list
ost/Luke Cage (Original Soundtrack Album)/
ost/Luke Cage (Original Soundtrack Album)/40. Finding Chico.m4a
ost/Luke Cage (Original Soundtrack Album)/41. I Am Carl Lucas.m4a
ost/Luke Cage (Original Soundtrack Album)/42. Crispus Attucks.m4a
ost/Luke Cage (Original Soundtrack Album)/43. Hideout.m4a
ost/Luke Cage (Original Soundtrack Album)/44. Cuban Coffee.m4a
ost/Luke Cage (Original Soundtrack Album)/45. Like a Brother.m4a
ost/Luke Cage (Original Soundtrack Album)/46. Cottonmouth's Clamp.m4a
ost/Luke Cage (Original Soundtrack Album)/47. Survival.m4a
ost/Luke Cage (Original Soundtrack Album)/48. Cottonmouth Theme.m4a
ost/Luke Cage (Original Soundtrack Album)/49. Luke Cops.m4a
ost/Luke Cage (Original Soundtrack Album)/50. Crushin' On Reva.m4a
ost/Luke Cage (Original Soundtrack Album)/51. Beloved Reva.m4a
^Crsync error: unexplained error (code 130) at rsync.c(632) [sender=3.1.0]
[sender] io timeout after 60 seconds -- exiting
arnaud@CLAVAIN:~$

你可以看到^C在哪里,那是我发送kill消息的时候。这时会出现“错误:无法解释的错误”和“io timout”错误。

我尝试了另一个命令,rsync -rltvzD --progress --delete但会产生相同的错误。

无论如何,我可以更好地解决此问题以了解问题所在吗?请注意,如果我在本地驱动器(例如 USB 外部驱动器)上执行此操作,则 rsync 工作得很好。

答案1

我最近也遇到了这个问题(就像昨天一样),我发现,当我rsync没有增量复制(用于--whole-file/-W整个文件传输)时,一切都会完美运行。

我知道这不是最好的解决方案,但目前是一个快速修复,直到修补为止。

答案2

我也有同样的问题。它仅在 rsync 大文件时发生。我想出了一个解决方法:

当文件停止传输时,我将其取消,然后 rsync 任何停止的文件。无论出于何种原因,rsync 单个文件始终有效。在原始 rsync 完成之前,我通常必须对几个文件执行此操作。

超级烦人,但除了在 Windows 10 下不使用 Ubuntu Bash 之外我没有任何其他解决方案,这会令人失望。

我的设置:在 Windows 10 下运行的 Ubuntu 和 digitalocean 的 ubuntu 服务器之间进行 rsyncing。

答案3

行为的变化很可能是由于 Windows 更新造成的,它更改了默认权限或在更新期间禁用了某个功能,并且无法再次正常打开。 Microsoft 针对其他错误的解决方案是禁用并重新启用 WSL。

如果您确定没有更改任何内容,并且从“Windows 功能”禁用并重新启用 WSL 后仍然不起作用,您可能需要将其作为错误/问题发布在 Microsoft 的 github 上, https://github.com/Microsoft/BashOnWindows/issues

相关内容