rsync over ssh“协议数据流中的错误”(代码12)。 ssh工作

我试过了:

rsync -v -v -e 'ssh -p YY' ./testfile me@XXXXX:/home 

错误信息

 opening connection using: ssh -p YY -l me 146.6.84.206 rsync ->-server -vvve.s . /home [sender] make_file(testfile,*,0) send_file_list done send_files starting server_recv(2) starting pid=17537 rsync: connection unexpectedly closed (9 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(600)[sender=3.0.6] _exit_cleanup(code=12, file=io.c, line=600): about to call exit(12) 

这很好用:

 ssh -p YY me@XXXXX 

这对我来说这个问题既不是sshd没有运行,也不是YY是防火墙的。 无论如何我已经检查过了。

还有什么其他问题?

编辑:问题似乎是“自我解决”。 第二天我无法复制。 我启动了本地计算机。 也许值得注意的是,我的IP地址与上次不同。 现在rsync神奇地起作用了。 鉴于它会消失,我会感激猜测它本来可以是什么。

如果指定不存在的远程路径,也可能会出现此错误。

我在OS X上遇到这个错误:

 $ rsync -avz public/ static:apps/myapp.com building file list ... done rsync: connection unexpectedly closed (8 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-47/rsync/io.c(453) [sender=2.6.9] 

转过来只是一个错误输入目的地路径的问题。 apps目录不存在。 当我将其更改为static:sites/myapp.comsites dir 确实存在),错误就消失了。

如果路径中的最终目录不存在(我可以执行static:sites/mynewapp.com ),这static:sites/mynewapp.com但是看起来任何前面的目录必须已经存在。

我没有在目标主机上安装rsync时出现此错误。 在我的情况下错误消息也说rsync: command not found 。 一个简单的

 sudo apt-get install rsync 

在目标主机上解决了这个问题。

远程端的登录脚本是否会在stdout上产生垃圾? 检查一下

 ssh -p YY me@XXXXX /bin/true > out.txt 

如果out.txt包含数据,请在.profile.bashrc标识违规语句并将其包装

 if [ ! -t 1 ]; then echo garbage fi 

您可能需要输入ssh二进制文件的完整路径,即

 rsync -v -v -e '/usr/bin/ssh -p YY' ./testfile me@XXXXX:/home 

虽然还有其他可能的原因。

如果远程系统上rsync的路径不是本地系统认为的那样,也会发生此错误。 您可以通过指定-vv(甚至更多vs)来查看发生的情况。 如果这是问题,您可以使用–rsync-path选项指定rsync的远程路径。

我看到了这个错误:

 rsync -e 'ssh -v' debug1: Exit status 11 

 rsync error: error in rsync protocol data stream (code 12) at /BuildRoot /Library/Caches/com.apple.xbs/Sources/rsync/rsync-51/rsync/io.c(453) [sender=2.6.9] 

我能够ssh到远程主机,发现它没有磁盘空间。