当驱动器断开连接时,macOS 上的 rsync 会复制“幻影数据”

当驱动器断开连接时,macOS 上的 rsync 会复制“幻影数据”

我正在尝试从发生故障的驱动器中复制文件。它还没有失败 :)

基本上它每 30 秒就会断开一次连接。然后 macOS 会自动重新安装它,但 Finder 在复制文件时遇到了问题。

所以我尝试使用rsync -a --progress,但每次驱动器断开连接时,rsync 都会“继续运行”,并用……我不知道,某种东西填充文件的其余部分。我假设它会写入零,但它会根据写入实际数据hexdump。无论如何,这不是准确的数据。

我已经能够通过从随机 SD 卡执行 rsync 来重现此行为。如果我在复制 4GB 文件时拔出卡,rsync 只会快速传输并写入完整的 4GB 文件,尽管这毫无意义。

当驱动器断开连接时,如何让 rsync 停止复制幻影数据?

问题在于,2020 年的 macOS 附带了 2006 年版本的 rsync。

答案1

如果目标驱动器断开连接,Rsync 应退出。如果驱动器快速重新连接,您可能需要指定更短的超时时间(以秒为单位)以使此行为正常工作。

就像是rsync -a --progress --timeout 2

相关人物信息:

--timeout=TIMEOUT
       This  option  allows you to set a maximum I/O timeout in seconds. If no data is transferred for the specified time then rsync will exit. The default is 0, which means no timeout.

相关内容