ssh üzerinden "rsync" protokol veri akışında hata "(kod 12). ssh işleri


50

Denedim:

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

Hata mesajı

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)

Bu iyi çalışıyor:

ssh -p YY me@XXXXX

Bana göre sorun ne işe sshdyaramıyor ne de YY firewall'lu. Yine de kontrol ettim.

Başka ne problem olabilir ki?

EDIT: Problem "kendi kendini çözme" gibi görünüyor. Ertesi gün kopyalayamadım. Yerel bilgisayarıma başladım. Belki de özellikle geçen seferden farklı bir IP adresim vardı. Ve şimdi rsync sihirli bir şekilde çalışıyor. Neyin uzaklaştığının ışığında olabileceği konusundaki tahminleri takdir ediyorum.


1
/homeUzak sunucuda yazma izniniz var mı?
souravc

Elbette. Şşş yaptığımda, kediyle dokunmaya başlayabilirim vb. İkinci düşüncede, uzaktan kastettiğinizden emin değilim. Uzaktaki bir sunucudayken işleri yerel olarak taşımak için rsync'i çağırmaktan bahsediyorum. Hem özgün hem de hedef klasörde yazma iznine sahip olmalıyım
user3391229

Bu hatayı alıyorum (Pelikan blogumu sunucumla senkronize etmeye çalışırken) arada bir. Ben sunucuya ssh, sonra rsync tekrar deneyin, iyi çalışıyor buluyorum. Arada ne olduğundan emin değilim.
Anthony C,

Uzak sunucuda yeterli alana sahip olmamak da bu hatayı artırabilir.
Makan

Yanıtlar:


84

Varolmayan uzak bir yol belirtirseniz bu hatayı alabilirsiniz.

OS X'te bu hatayı aldım:

$ 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]

Döndü, sadece hedef yolunu yanlış yazma meselesiydi. appsDir yoktu. Bunu değiştirdiğimde static:sites/myapp.com( sitesdir vardı ), hata gitti.

Yoldaki son dizin yoksa (yapabilirim static:sites/mynewapp.com) iyi, ancak önceki herhangi bir dizinin zaten var olması gerektiği anlaşılıyor.


Bu soruyu sormayı neredeyse unuttum. O zamandan beri aynı sorunu yaşamamıştım. Olanların bu olduğundan şüpheleniyorum.
kullanıcı3391229

18
Teşekkür ederim! Bu şimdiye kadarki en yanıltıcı hata mesajı olmalı.
Frans

1
Ayrıca, rsync çalıştırılabilir kodunuz yoksa, benzer bir hata gösterir. Çoğunlukla ansibles gördük
mannoj

Bazı nedenlerden dolayı, eğer mevcut değilse, rsync 'in dizini yaratacağını düşündüm ... Sanırım hayır - önce hedef dizini yaratmanız gerekir. Hedef yol eğik çizgide bitiyorsa, dizin bulunmalıdır. Bir eğik çizgide bitmiyorsa, üstündeki bir seviye bulunmalıdır.
squarecandy

1
Benim sorunum: uzak disk dolu.
Zhang Buzz,

15

rsyncHedef ana bilgisayara yüklenmediğinde bu hatayı aldım . Benim durumumdaki hata mesajı da söyledi rsync: command not found. Basit

sudo apt-get install rsync

Hedef ana bilgisayarda sorunu çözdü.


Kod 12 hatası vardı ve bulunmayan rsync komutu ile ilgili bir ileti yok. Kurulduktan sonra hata gitti.
Hbar

3

Uzak uçtaki giriş komut dosyanız stdout'ta çöp üretiyor mu? Şunu kontrol et

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

Eğer out.txtveri içeren, sizin kusurlu ifadeleri aynen .profileOr .bashrcve bunları sarmak

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

Nada out.txt içinde. Ancak bu öğleden sonra sorun üretemediğim bir dönemde bunu da denedim.
kullanici3391229

Sorunu üretebileceğim bir zamanda bunu denedim ve out.txt'te de hiçbir şeyim yoktu.
joshreesjones

1

Ssh binary'in tam yolunu girmeniz gerekebilir, yani

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

Diğer olası nedenler olsa da.


Evet, referans alabileceğiniz birden fazla ssh örneğiniz olduğunda bunun olabileceğini okudum. Ancak, ertesi gün uzaklaştığı gerçeği bu mümkün değildir
user3391229

0

Bu hata, uzaktaki sistemdeki rsync'e giden yol, yerel sistemde olduğu gibi değilse de gerçekleşebilir. -Vv (veya daha da çok vs) belirterek neler olduğunu görebilirsiniz. Sorun buysa, --rsync-path seçeneğiyle rsync'e giden uzak yolu belirleyebilirsiniz.


0

Bu hatayı görüyordum:

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]

Uzaktaki ana makineye ssh yapmayı başardım ve disk alanı dışında olduğunu öğrendim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.