不重定向 stdout 等时 sshpass/rsync 失败

不重定向 stdout 等时 sshpass/rsync 失败

我遇到了一个奇怪的问题,但似乎找不到原因和解决方案。

我在 win11/cygwin 上(sshpass 1.06,rsync 3.2.7)

我打电话:

/usr/bin/sshpass -p $sshpasswd /usr/bin/rsync --dry-run -azhvve ssh --mkpath --log-file=$sourcedir/$folder.log.txt --include-from=$sshsourcesfile --exclude=$sourcedir/* $sourcedir $sshtarget:$backupbasepath/$folder

交叉测试变量如下所示,我认为这是正确的:

/usr/bin/sshpass -p xxxxxxxx /usr/bin/rsync --dry-run -azhvve ssh --mkpath --log-file=/F/2024_03_11-00_19_46_backup.log.txt --include-from=/F/2024_03_11-00_19_46_backup.sources.txt --exclude=/F/* /F [email protected]:/RAID/Software/MaintStick/2024_03_11-00_19_46_backup/

上面的调用最终出现错误:

2024/03/11 00:19:47 [560] rsync: connection unexpectedly closed (0 bytes received so far) [sender]
2024/03/11 00:19:47 [560] sent 0 bytes  received 0 bytes  total size 0
2024/03/11 00:19:47 [560] rsync error: error in rsync protocol data stream (code 12) at io.c(231) [sender=3.2.7]

现在,如果我向命令添加重定向,它就可以正常工作!我尝试了以下方法:

>/dev/null
>test.txt
| pv -lpes 2000

我的问题是:为什么调用失败并且最后没有重定向?

相关内容