ss पर 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 में फ़ायरवॉल है। मैंने वैसे भी जाँच की है।

और क्या समस्याएं हो सकती हैं?

संपादित करें: यह समस्या "आत्म समाधान" है। मैं अगले दिन की नकल नहीं कर सका। मैंने अपना स्थानीय कंप्यूटर शुरू किया। शायद विशेष रूप से मेरे पास पिछली बार की तुलना में एक अलग आईपी पता था। और अब rsync जादुई काम करता है। मैं अनुमान लगाता हूँ कि इसके प्रकाश में आने से क्या हो सकता है।


1
क्या आपके पास /homeरिमोट सर्वर पर लिखने की अनुमति है?
15:53

ज़रूर। जब मैं ssh करता हूं तो मैं बिल्ली और स्पर्श करना शुरू कर सकता हूं आदि दूसरे विचार पर मुझे यकीन नहीं है कि आपको रिमोट से क्या मतलब है। मैं स्थानीय रूप से चीजों को स्थानांतरित करने के लिए एक दूरस्थ सर्वर पर rsync को कॉल करने के बारे में बात कर रहा हूं। मुझे मूल और गंतव्य दोनों फ़ोल्डर में अनुमतियाँ लिखनी चाहिए
user3391229

मुझे यह त्रुटि मिल रही है (जबकि मेरे पेलिकन ब्लॉग को मेरे सर्वर पर rsync करने की कोशिश करते हुए) हर बार एक समय में। मुझे लगता है कि अगर मैं सर्वर में ssh करता हूं, तो rsync फिर से कोशिश करें, यह ठीक काम करता है। निश्चित नहीं कि बीच में क्या होता है।
एंथनी सी

दूरस्थ सर्वर पर पर्याप्त स्थान न होना भी इस त्रुटि को बढ़ा सकता है।
माकन

जवाबों:


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.com(इसके बजाय sitesडायर मौजूद था ), तो त्रुटि दूर हो गई।

यह ठीक है अगर पथ में अंतिम निर्देशिका मौजूद नहीं है (मैं कर सकता था static:sites/mynewapp.com), लेकिन ऐसा प्रतीत होता है कि कोई भी पूर्ववर्ती निर्देशिका पहले से मौजूद है।


मैं यह सवाल पूछना लगभग भूल गया हूं। मैं के बाद से एक ही समस्या नहीं थी। मुझे संदेह है कि यह क्या हुआ है।
user3391229

18
धन्यवाद! यह अब तक का सबसे भ्रामक त्रुटि संदेश होना चाहिए।
Frans

1
अगर आपके पास rsync निष्पादन योग्य नहीं है, तो यह समान त्रुटि दिखाता है। ज्यादातर मैंने ansibles में देखा है
mannoj

किसी कारण से मुझे लगा कि अगर यह मौजूद नहीं है तो rsync डायरेक्टरी बनाएगा ... मुझे लगता है कि नहीं - आपको पहले गंतव्य निर्देशिका बनाने की आवश्यकता है। यदि गंतव्य पथ एक स्लैश में समाप्त होता है तो निर्देशिका मौजूद होनी चाहिए। यदि यह एक स्लैश में समाप्त नहीं होता है, तो इसके ऊपर का एक स्तर मौजूद होना चाहिए।
चौकोर कैंडी

1
मेरी समस्या है: दूरस्थ डिस्क भरी हुई है
झांग बज़

15

rsyncलक्ष्य होस्ट पर स्थापित नहीं होने पर मुझे यह त्रुटि मिली । मेरे मामले में त्रुटि संदेश भी कहा गया rsync: command not found। एक सरल

sudo apt-get install rsync

लक्ष्य पर मेजबान समस्या को हल किया।


मेरे पास कोड 12 त्रुटि थी और rsync कमांड के बारे में कोई संदेश नहीं मिला। एक बार स्थापित करने के बाद त्रुटि दूर हो गई।
हब्बर

3

क्या दूरस्थ अंत में आपकी लॉगिन स्क्रिप्ट स्टडआउट पर कचरा उत्पन्न करती है? इसके साथ जांच करें

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

यदि out.txtडेटा सम्‍मिलित है, तो अपने .profileया आप में लिप्‍त कथनों को पहचानें .bashrcऔर उन्‍हें इसमें लपेटें

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

बाहर में नाडा। लेकिन मैंने यह भी कोशिश की कि आज दोपहर एक ऐसी अवधि के दौरान जहां मैं समस्या का पुनरुत्पादन न कर सकूं।
user3391229

मैंने ऐसे समय में यह कोशिश की थी जब मैं समस्या पैदा कर सकूं और मुझे कुछ भी नहीं मिला।
joshreesjones

1

आपको ssh बाइनरी यानी, के लिए पूर्ण पथ में डालने की आवश्यकता हो सकती है

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

हालांकि अन्य संभावित कारण हैं।


हाँ, मैंने पढ़ा है कि आप ssh के कई उदाहरण हैं जब आप संदर्भित हो सकते हैं। हालांकि, तथ्य यह है कि यह अगले दिन चला गया यह संभावना नहीं है
user3391229

0

यह त्रुटि तब भी हो सकती है यदि दूरस्थ सिस्टम पर rsync का पथ वह नहीं है जो स्थानीय प्रणाली इसे मानती है। आप देख सकते हैं कि -vv (या इससे भी अधिक) निर्दिष्ट करके क्या हो रहा है। यदि यह समस्या है तो आप दूरस्थ पथ को rsync --rsync-path विकल्प के साथ निर्दिष्ट कर सकते हैं।


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 करने में सक्षम था और पाया कि यह डिस्क स्थान से बाहर था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.