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


50

我试过了:

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可以神奇地工作了。鉴于它的消失,我猜想它可能是什么。


1
/home在远程服务器上具有写权限吗?
souravc

当然。当我ssh时,我可以开始做猫和触摸之类的事情。再三考虑,我不确定您所说的遥控器是什么意思。我说的是在远程服务器上调用rsync在本地移动事物。我应该同时在原始文件夹和目标文件夹中都具有写权限
user3391229 2015年

我一直不时收到此错误(尝试将Pelican博客同步到我的服务器时)。我发现如果我将ssh放入服务器,然后再次尝试rsync,它可以正常工作。不知道之间会发生什么。
Anthony C

远程服务器上没有足够的空间也会引发此错误。
马坎

Answers:


84

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

我在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目录确实存在)时,错误消失了。

如果路径中的最终目录不存在(我可以这样做static:sites/mynewapp.com),但它似乎必须存在任何先前的目录,这是很好的。


我几乎忘记了问这个问题。从那以后我再也没有同样的问题了。我怀疑这是发生了什么。
user3391229 '16

18
谢谢!那肯定是有史以来最令人误解的错误信息。
弗朗斯

1
另外,如果您没有rsync可执行文件,它会显示类似的错误。主要是我在ansibles看到
mannoj

出于某种原因,我认为rsync将在目录不存在的情况下创建该目录...我想不是-您需要首先创建目标目录。如果目标路径以斜杠结尾,则该目录必须存在。如果不以斜杠结尾,则必须存在一个以上的级别。
squarecandy

1
我的问题是:远程磁盘已满。
Zhang Buzz

15

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

sudo apt-get install rsync

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


我有一个代码12错误,没有有关未找到rsync命令的消息。安装后,错误消失了。
Hbar

3

您在远端的登录脚本是否在stdout上产生垃圾?用这个检查

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

如果out.txt包含数据,请在.profile或中标识有问题的语句,.bashrc然后将其包装

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

Nada在out.txt中。但是我也尝试过今天下午在无法重现问题的时期。
user3391229

当我可能会产生问题时,我尝试了此操作,而out.txt中也没有任何内容。
joshreesjones 2015年

1

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

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

尽管还有其他可能的原因。


是的,我读到,当您有多个要引用的ssh实例时,可能会发生这种情况。但是,第二天它消失了这一事实使它不太可能
user3391229 2015年

0

如果远程系统上rsync的路径不是本地系统假定的路径,也会发生此错误。您可以通过指定-vv(甚至更多vs)来查看发生了什么。如果这是问题所在,则可以使用--rsync-path选项指定rsync的远程路径。


0

我看到此错误:

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进入远程主机,发现磁盘空间不足。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.