rsync atas ssh “kesalahan dalam aliran data protokol” (kode 12). ssh berhasil

51

Saya mencoba:

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

Pesan eror

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)

Ini berfungsi dengan baik:

ssh -p YY me@XXXXX

Yang menunjukkan kepada saya masalahnya bukan yang sshdtidak berjalan atau port YY yang di-firewall. Saya sudah memeriksa pula.

Masalah apa lagi yang mungkin ada?

EDIT: Masalahnya tampaknya telah "menyelesaikan sendiri." Saya tidak bisa meniru hari berikutnya. Saya memulai komputer lokal saya. Mungkin khususnya saya memiliki alamat IP yang berbeda dari yang terakhir. Dan sekarang rsync secara ajaib berfungsi. Saya menghargai dugaan apa yang bisa terjadi jika itu hilang.

pengguna3391229
sumber
1
Apakah Anda memiliki izin menulis di /homeserver jauh?
souravc
Tentu. Ketika saya ssh, saya bisa mulai melakukan cat dan menyentuh dll. Pada pikiran kedua saya tidak yakin apa yang Anda maksud dengan remote. Saya berbicara tentang memanggil rsync saat berada di server jarak jauh untuk memindahkan berbagai hal secara lokal. Saya harus memiliki izin menulis di folder asli dan tujuan
user3391229
Saya mendapatkan kesalahan ini (ketika mencoba rsync blog Pelican saya ke server saya) sesekali. Saya menemukan bahwa jika saya ssh ke server, kemudian coba rsync lagi, itu berfungsi dengan baik. Tidak yakin apa yang terjadi di antaranya.
Anthony C
Tidak memiliki cukup ruang pada server jarak jauh juga dapat meningkatkan kesalahan ini.
Makan

Jawaban:

84

Anda juga bisa mendapatkan kesalahan ini jika Anda menentukan jalur jauh yang tidak ada.

Saya mendapatkan kesalahan ini di 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]

Ternyata itu hanya masalah salah mengetik jalur tujuan. The appsdir tidak ada. Ketika saya mengubahnya static:sites/myapp.comsebagai gantinya ( sitesdir memang ada), kesalahan hilang.

Tidak apa-apa jika direktori terakhir di jalur tidak ada (saya bisa lakukan static:sites/mynewapp.com) tetapi tampaknya direktori sebelumnya harus sudah ada.

Henrik N
sumber
Saya hampir lupa menanyakan pertanyaan ini. Saya tidak punya masalah yang sama sejak itu. Saya curiga inilah yang terjadi.
user3391229
18
Terima kasih! Itu pasti pesan kesalahan yang paling menyesatkan.
Frans
1
juga jika Anda tidak memiliki rsync yang dapat dieksekusi, itu menunjukkan kesalahan serupa. Kebanyakan saya telah melihat di ansibles
mannoj
Untuk beberapa alasan saya pikir rsync akan membuat direktori jika tidak ada ... Saya kira tidak - Anda harus membuat direktori tujuan terlebih dahulu. Jika jalur tujuan berakhir dengan garis miring direktori harus ada. Jika tidak berakhir dengan garis miring, level di atasnya harus ada.
squarecandy
1
Masalah saya adalah: remote disk sudah penuh.
Zhang Buzz
15

Saya mendapatkan kesalahan ini ketika rsynctidak diinstal pada host target. Pesan kesalahan dalam kasus saya juga mengatakan rsync: command not found. Sederhana

sudo apt-get install rsync

pada host target menyelesaikan masalah.

Florian Brucker
sumber
Saya mengalami kesalahan kode 12 dan tidak ada pesan tentang perintah rsync yang tidak ditemukan. Setelah diinstal, kesalahan hilang.
Hbar
4

Apakah skrip login Anda di ujung jarak jauh menghasilkan sampah di stdout? Periksa ini dengan

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

Jika out.txtberisi data, identifikasi pernyataan yang menyinggung Anda .profileatau .bashrcdan masukkan

if [ ! -t 1 ]; then
  echo garbage
fi
Arjen
sumber
Nada di out.txt. Tetapi saya juga mencobanya sore ini selama periode di mana saya tidak dapat mereproduksi masalah.
user3391229
Saya mencoba ini pada saat saya dapat menghasilkan masalah dan saya juga tidak mendapatkan apa-apa di out.txt.
joshreesjones
1

Anda mungkin perlu meletakkan path lengkap ke binary ssh, yaitu

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

Padahal ada kemungkinan penyebab lain.

thomasrutter
sumber
Ya saya baca itu bisa terjadi ketika Anda memiliki beberapa contoh ssh yang bisa Anda rujuk. Namun, fakta bahwa itu hilang pada hari berikutnya membuat ini tidak mungkin
user3391229
0

Kesalahan ini juga dapat terjadi jika jalur ke rsync di sistem jarak jauh tidak sesuai dengan asumsi sistem lokal. Anda dapat melihat apa yang terjadi dengan menentukan -vv (atau bahkan lebih vs). Jika ini masalahnya, Anda dapat menentukan jalur jarak jauh ke rsync dengan opsi --rsync-path.

Mike
sumber
0

Saya melihat kesalahan ini:

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]

Saya dapat ssh ke host jarak jauh dan menemukan bahwa itu keluar dari ruang disk.

Andy
sumber