rsync over ssh“ ข้อผิดพลาดในสตรีมข้อมูลโปรโตคอล” (รหัส 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 นั้นเป็นไฟร์วอลล์ ฉันได้ตรวจสอบแล้ว

จะมีปัญหาอื่นอีกไหม

แก้ไข: ปัญหาดูเหมือนว่าจะ "การแก้ไขตนเอง" ฉันไม่สามารถทำซ้ำในวันรุ่งขึ้น ฉันเริ่มคอมพิวเตอร์ในพื้นที่ของฉัน บางทีฉันอาจมีที่อยู่ IP แตกต่างจากครั้งที่แล้ว และตอนนี้ rsync ได้ผลอย่างน่าอัศจรรย์ ฉันขอขอบคุณที่เดาว่ามันจะหายไปได้อย่างไร


1
คุณมีสิทธิ์เขียนที่/homeเซิร์ฟเวอร์ระยะไกลหรือไม่
souravc

แน่ใจ เมื่อฉันเริ่มฉันสามารถเริ่มทำแมวและสัมผัส ฯลฯ ในวินาทีที่คิดว่าฉันไม่แน่ใจว่าคุณหมายถึงอะไรจากระยะไกล ฉันกำลังพูดถึงการโทร rsync ขณะอยู่บนเซิร์ฟเวอร์ระยะไกลเพื่อย้ายสิ่งต่าง ๆ ภายในเครื่อง ฉันควรจะมีสิทธิ์ในการเขียนทั้งในโฟลเดอร์ต้นฉบับและปลายทาง
user3391229

ฉันได้รับข้อผิดพลาดนี้ (ในขณะที่พยายามซิงค์บล็อก Pelican ของฉันกับเซิร์ฟเวอร์ของฉัน) ทุกครั้ง ฉันพบว่าถ้าฉัน ssh ลงเซิร์ฟเวอร์แล้วลอง rsync อีกครั้งมันใช้งานได้ดี ไม่แน่ใจว่าเกิดอะไรขึ้นระหว่างนั้น
Anthony C

มีพื้นที่ไม่เพียงพอบนรีโมตเซิร์ฟเวอร์ยังสามารถเพิ่มข้อผิดพลาดนี้ได้
Makan

คำตอบ:


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]

ทำให้มันกลายเป็นเรื่องของการพิมพ์ผิดเส้นทางปลายทาง appsdir ไม่ได้อยู่ เมื่อฉันเปลี่ยนที่static:sites/myapp.comแทน (คนsitesdir ไม่อยู่) ข้อผิดพลาดออกไป

ไม่เป็นไรหากไดเรกทอรีสุดท้ายในพา ธ ไม่มีอยู่ (ฉันทำได้static:sites/mynewapp.com) แต่ปรากฏว่าไดเรกทอรีก่อนหน้านี้ต้องมีอยู่แล้ว


ฉันเกือบลืมถามคำถามนี้ ฉันไม่ได้มีปัญหาเดียวกันตั้งแต่ ฉันสงสัยว่านี่คือสิ่งที่เกิดขึ้น
user3391229

18
ขอขอบคุณ! ต้องเป็นข้อความแสดงข้อผิดพลาดที่ทำให้เข้าใจผิดมากที่สุดเท่าที่เคยมีมา
ฟรานส์

1
ถ้าคุณไม่มี rsync executable ก็จะแสดงข้อผิดพลาดที่คล้ายกัน ส่วนใหญ่ฉันได้เห็นใน ansibles
mannoj

ด้วยเหตุผลบางอย่างฉันคิดว่า rsync จะสร้างไดเรกทอรีหากไม่มี ... ฉันเดาไม่ - คุณต้องสร้างไดเรกทอรีปลายทางก่อน หากเส้นทางปลายทางสิ้นสุดลงด้วยเครื่องหมายทับจะต้องมีไดเรกทอรีอยู่ หากยังไม่สิ้นสุดในเครื่องหมายทับจะต้องมีอยู่หนึ่งระดับเหนือระดับนั้น
squarecandy

1
ปัญหาของฉันคือ: ดิสก์ระยะไกลเต็ม
Zhang Buzz

15

ฉันได้รับข้อผิดพลาดนี้เมื่อrsyncไม่ได้ติดตั้งบนโฮสต์เป้าหมาย rsync: command not foundเกิดข้อผิดพลาดในกรณีของฉันยังกล่าวอีกว่า แบบง่าย ๆ

sudo apt-get install rsync

บนโฮสต์เป้าหมายแก้ปัญหาได้


ฉันพบข้อผิดพลาดของรหัส 12 และไม่พบข้อความเกี่ยวกับคำสั่ง rsync เมื่อติดตั้งแล้วข้อผิดพลาดก็หายไป
Hbar

3

สคริปต์การเข้าสู่ระบบของคุณที่ปลายรีโมตสร้างขยะเมื่อ stdout หรือไม่ ตรวจสอบกับ

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

หากout.txtมีข้อมูลระบุงบที่กระทำผิดกฎหมายในของคุณ.profileหรือ.bashrcและห่อพวกเขาใน

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

Nada ใน out.txt แต่ฉันก็พยายามที่บ่ายนี้ในช่วงเวลาที่ฉันไม่สามารถทำซ้ำปัญหา
user3391229

ฉันลองครั้งนี้เมื่อฉันสามารถสร้างปัญหาและฉันก็ไม่มีอะไรใน out.txt
joshreesjones

1

คุณอาจต้องใส่เส้นทางแบบเต็มไปยังไบนารี ssh เช่น

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

แม้ว่าจะมีสาเหตุที่เป็นไปได้อื่น ๆ


ใช่ฉันอ่านแล้วอาจเกิดขึ้นเมื่อคุณมีหลายอินสแตนซ์ของ ssh ที่คุณสามารถอ้างอิงได้ อย่างไรก็ตามความจริงที่ว่ามันหายไปในวันถัดไปทำให้สิ่งนี้ไม่น่าเป็นไปได้
user3391229

0

ข้อผิดพลาดนี้ยังสามารถเกิดขึ้นได้หากเส้นทางไปยัง rsync ที่ระบบระยะไกลไม่ใช่สิ่งที่ระบบภายในสันนิษฐานว่าเป็น คุณสามารถดูสิ่งที่เกิดขึ้นได้โดยระบุ -vv (หรือมากกว่า vs) หากเป็นปัญหาคุณสามารถระบุเส้นทางระยะไกลเพื่อ 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 ในโฮสต์ระยะไกลและพบว่ามันออกจากพื้นที่ดิสก์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.