如何解决rsync错误的错误:pipe.c(85)[sender = 3.1.2]

时间:2018-11-19 05:53:11

标签: ubuntu go rsync mkdir

我正在使用rsync命令创建一个用于保存图像的新目录,该命令为"rsync -ave --rsync-path='mkdir -p " + path + " && rsync' " + filePath + " ubuntu@" + LocalhostIp + ":" + path,但是在运行我的代码时,该命令会给我一个错误,错误是

错误:

  

退出状态14:rsync:执行失败--rsync-path = mkdir:没有此类文件或目录(2)

     

rsync错误:pipe.c(85)[sender = 3.1.2]处IPC代码(代码14)错误

     

rsync:连接意外关闭(到目前为止已收到0个字节)[发送方]

     

rsync错误:io.c(235)[sender = 3.1.2]处IPC代码(代码14)错误

修改

func CopyUploadedFileToAppServers(filePath, path string) {
   ExecuteCommand("rsync -ave --rsync-path='mkdir -p " + path + " && rsync' " + filePath + " ubuntu@" + LocalhostIp + ":" + path)
}

func ExecuteCommand(command string) error{
 cmd := exec.Command("sh", "-c",command)
 var out bytes.Buffer
 var stderr bytes.Buffer
 cmd.Stdout = &out
 cmd.Stderr = &stderr

 err := cmd.Run()

 if err != nil {
    fmt.Println(fmt.Sprint(err) + ": " + stderr.String())
    return err
 }
 fmt.Println("Result: " + out.String())
 return nil
}

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

您需要删除-e选项,因为这需要以下工作(--rsync-path=...)代替ssh命令。例如,

$ rsync -ave --x_x  /tmp/a abc@localhost:/tmp/y
rsync: Failed to exec --x_x: No such file or directory (2)

只需使用-av