我试过了:
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 上遇到这个错误:
转身,这只是错误输入目标路径的问题。该
apps
目录不存在。当我将其更改为static:sites/myapp.com
(sites
目录确实存在)时,错误消失了。如果路径中的最终目录不存在(我可以这样做)也没关系,
static:sites/mynewapp.com
但看起来任何前面的目录必须已经存在。rsync
未在目标主机上安装时出现此错误。在我的案例中,错误消息还说rsync: command not found
。一个简单的在目标主机上解决了这个问题。
您在远程端的登录脚本是否会在 stdout 上产生垃圾?检查这个
如果包含数据,请在您的or
out.txt
中识别出违规语句并将它们包装在.profile
.bashrc
如果远程系统上的 rsync 路径不是本地系统假定的路径,也会发生此错误。您可以通过指定 -vv(或更多 vs)来查看发生了什么。如果这是问题所在,您可以使用 --rsync-path 选项指定 rsync 的远程路径。
您可能需要输入 ssh 二进制文件的完整路径,即
尽管还有其他可能的原因。
我遇到这个错误是因为我正在同步到一个已满的驱动器!如果此处的其他解决方案无法帮助您解决此问题,请检查您的磁盘使用情况。
对于特定文件的传输,我碰巧遇到了这个错误,因为之前中止的 rsync 运行似乎已经损坏了目标文件(可能是由于目标文件上的增量/增量更改中断)。
我的解决方案是找出导致错误的文件(通过使用
-v
和/或--progress
),在目标中删除该文件,然后再次正常运行 rsync。我看到了这个错误:
...
我能够通过 ssh 连接到远程主机,但发现它的磁盘空间不足。
我在一对不同版本的 rsync 的 rsync 协议数据流(代码 12)中遇到了这个错误。所以请检查客户端和服务器上的 rsync 版本。
在我的例子中,本地 rsync 是版本 2.6.9(在 Mac OSX 上),而远程版本是版本 3(现在不记得确切的版本)。一旦我将本地 rsync 升级到版本 3(使用 brew),问题就解决了。