捕获实际的 rsync 错误

捕获实际的 rsync 错误

我们正在将文件从本地 (Windows) 传输到远程系统 (Unix)。在几个设置中,我们收到错误代码 #13。手册页说这是Errors with program diagnostics

在我们的系统上,我们知道一个可能的原因是远程服务器上的目录权限,另一个原因是端口 873 未打开。

有没有明确的方法来确定错误的原因?是否可以先检查端口,如果遇到错误则返回错误,然后开始传输?

我认为这rsync会有更详细的错误代码,特别是在实际连接时。

答案1

您可以通过请求rsync远程系统的目录列表来区分。

  1. 服务器在两秒内正确响应

    $ rsync --contimeout=2 remoteserver::
    SHARE1          We store stuff here
    SHARE2          we store other stuff here
    $ echo $?
    0
    
  2. 服务器未运行rsync守护进程

    $ rsync --contimeout=2 remoteserver::
    rsync: failed to connect to remoteserver (10.10.10.10): Connection refused (111)
    rsync error: error in socket IO (code 10) at clientserver.c(125) [Receiver=3.1.2]
    $ echo $?
    10
    
  3. 服务器两秒内没有响应

    $ rsync --contimeout=2 remoteserver::
    rsync error: timeout waiting for daemon connection (code 35) at socket.c(281) [Receiver=3.1.2]
    $ echo $?
    35
    

相关内容