web-dev-qa-db-ja.com

ssh上のrsync "プロトコルデータストリームのエラー"(コード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は魔法のように動作します。私はそれが消えることを考慮してそれが何であったかもしれないかについての推測に感謝します。

49
user3391229

存在しないリモートパスを指定した場合にも、このエラーが発生する可能性があります。

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 dirは存在しませんでした。それをstatic:sites/myapp.comに変更したとき(sites dir didが存在する)、エラーはなくなりました。

パスの最後のディレクトリが存在しない場合は問題ありません(static:sites/mynewapp.comを実行できます)が、先行するディレクトリは既に存在している必要があります。

82
Henrik N

ターゲットホストにrsyncがインストールされていないときにこのエラーが発生しました。私の場合のエラーメッセージには、rsync: command not foundも記載されています。シンプルな

Sudo apt-get install rsync

ターゲットホストで問題を解決しました。

11
Florian Brucker

リモートエンドのログインスクリプトはstdoutでゴミを生成しますか?でこれを確認してください

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

out.txtにデータが含まれている場合、.profileまたは.bashrcで問題のステートメントを特定し、それらをラップします

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

Sshバイナリへのフルパスを入力する必要がある場合があります。

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

他にも考えられる原因がありますが。

1
thomasrutter

私はこのエラーを見ていました:

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できて、ディスクスペースが不足していることがわかりました。

0
Andy

このエラーは、リモートシステムでのrsyncへのパスが、ローカルシステムが想定しているものと異なる場合にも発生する可能性があります。 -vv(またはさらにvs)を指定すると、何が起こっているかを確認できます。これが問題になる場合は、-rsync-pathオプションを使用してrsyncへのリモートパスを指定できます。

0
Mike