วิธีการตีความและแก้ไขข้อผิดพลาดอินพุต / เอาต์พุตใน Linux?


21

ฉันกำลังสำรองข้อมูลรายวันด้วย rsync เริ่มเมื่อไม่กี่วันที่ผ่านมาหนึ่งในไฟล์กำลังขว้างข้อผิดพลาดนี้ระหว่างการสำรองข้อมูล:

rsync: read errors mapping "/home/folder/file.ext": Input/output error (5)
WARNING: /home/folder/file.ext failed verification -- update discarded (will try again).

หลักสูตรที่ดีที่สุดคืออะไร มันเป็นเพียงไฟล์ที่เสียหายหรือไม่? หรือมีบางอย่างผิดปกติกับฮาร์ดไดรฟ์ในตำแหน่งของไฟล์หรือไม่ ฉันควรลบและคัดลอกหนึ่งในรุ่นที่สำรองไว้ลงในตำแหน่งของไฟล์หรือไม่ หรือมีอย่างอื่นที่ฉันควรทำอย่างไร?

คำตอบ:


17

ข้อผิดพลาด rsync

 read errors mapping ....: Input/output error (5)

ระบุถึงความเป็นไปไม่ได้ของ rsync ที่จะอ่านหรือเขียนไฟล์ สาเหตุที่เป็นไปได้มากที่สุดของข้อผิดพลาดนี้คือข้อบกพร่องของดิสก์ทั้งใน SRC หรือในไดเรกทอรี TGT ความเป็นไปได้อื่น ๆ รวมถึงการอนุญาตที่ไม่เพียงพอการล็อกไฟล์โดยโปรแกรมป้องกันไวรัสและmaybeสาเหตุอื่น ๆ

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

อีกวิธีหนึ่งคุณอาจค้นพบว่าคุณไม่สามารถเข้าถึงไฟล์ในไดเรกทอรี SRC ในกรณีนี้ฉันขอแนะนำให้คุณใช้โปรแกรมอรรถประโยชน์การตรวจสอบดิสก์ใด ๆ ที่มีให้กับ distro ของคุณ

การป้องกันไวรัสสิทธิพิเศษไม่เพียงพอง่ายต่อการวินิจฉัย

สุดท้ายถ้าคุณมีเซกเตอร์ที่ไม่ดีในไดเรกทอรี SRC ของคุณคุณอาจแยกออกจากการเรียกใช้ rsync ในอนาคตโดยใช้วิธี

rsync -av --exclude='/home/my_name/directory_with_corrupt_files/*'

ขอบคุณ! ด้วยความเสี่ยงที่จะเกิดคำถามนี้อีกครั้งฉันจะรู้ได้อย่างไรว่ามันเป็นไดเรกทอรี SRC หรือ TGT หากฉันสามารถแยกสิทธิพิเศษหรือป้องกันไวรัสออกได้
Uncovery

ไฟล์ล็อคป้องกันไวรัสบางครั้ง หากนั่นเป็นปัญหาให้ลองคำสั่งเดิมอีกครั้งในภายหลังไม่ควรแสดงข้อผิดพลาดเดียวกัน เรื่องของสิทธิพิเศษนั้นง่าย: ใช้บัญชีรูทบนทั้งเครื่อง SRC และ TGT หากคุณไม่สามารถทำเช่นนั้นได้ให้ตรวจสอบว่าคุณสามารถเข้าถึงไฟล์ที่ rsync ล้มเหลวได้หรือไม่นั่นคือไฟล์ที่เป็นของบัญชีที่พยายามเข้าถึงพวกเขาและหากพวกเขาไม่ได้เข้าถึงการอ่าน หากวิธีนี้สามารถแก้ไขปัญหาของคุณได้โปรดอย่าลืมรับคำตอบของฉันมันมีประโยชน์สำหรับผู้อ่านรายอื่น
MariusMatutiae

คุณเข้าใจผิดความคิดเห็นของฉันข้างต้น ไม่เป็นไรฉันจะถามคำถามใหม่
Uncovery

TGT เป็นเพียงเป้าหมายใช่มั้ย อาจจะดีกว่าที่จะบอกว่าเป้าหมายแล้ว
Jasper

ดูเหมือนว่าคำตอบของคุณให้กำเนิดบทความทั้งหมดbobcares.com/blog/rsync-input-output-error_5 (โดยไม่มีการอ้างอิงแน่นอน)
Yaroslav Nikitenko

3

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

ทางออกของฉันคือการใช้

--ignore-existing 

ตัวเลือก วิธีนี้ฉันสามารถเรียกใช้การซิงค์แบบวนซ้ำจนกว่าจะเห็นสถานะออก 0

แน่นอนในกรณีนี้ฉันไม่สนใจเกี่ยวกับการอัปเดตไฟล์ที่มีอยู่


0

ฉันมี 2 rsyncไดรฟ์ภายนอกผมเก็บในซิงค์ใช้ ฉันทำงานนี้เป็นประจำกับทั้งสองเครื่องและสลับจากเครื่องหนึ่งไปอีกเครื่องหนึ่งเพื่อความสะดวก ฉันมี 4 เครื่องที่ใช้ Debian 9 และใช้ไดรฟ์เหล่านี้กับแต่ละเครื่อง

เช้านี้ฉันใช้สิ่งต่อไปนี้:

rsync -ahv --delete drive-x drive-y 

และรู้สึกประหลาดใจที่มีรายงานความล้มเหลวสองสามร้อย

ส่วนใหญ่: rsync: readlink_stat... failed: Input/output error (5)
ยัง:rsync: rsync: recv_generator: mkdir ... failed: Read-only file system (30)

ในกระบวนการเพื่อค้นหาสิ่งที่เกิดขึ้นฉันได้ทำการติดตั้งไดรฟ์สองครั้งรีบูตรันrsyncโดย--deleteทั่วไปแล้วโดยปกติฉันจะพยายามแก้ไขบางสิ่งที่ทำงานได้อย่างน่าเชื่อถือมาเป็นเวลานาน แม้แต่คิดเกี่ยวกับการติดตั้งrsyncอีกครั้ง ก่อนที่ฉันจะทำอย่างนั้นฉันตัดสินใจที่จะrsyncไดรฟ์ 2 บนเครื่องอื่น ๆ ซึ่งฉันทำงานแบบออฟไลน์ rsyncทำงานในแบบที่ควรจะเป็น

หลังจากอ่านเนื้อหาที่โพสต์ที่นี่ฉันติดตั้งclamavอัปเดตลายเซ็นและสแกนโฮมไดเร็กตอรี่ของฉัน ฉันใช้สิ่งนี้เป็นประจำกับเครื่องอื่น ฉันพบ 1 และเพียง 1 PUA และฉันลบมัน ฉันลบ PUA เสมอ จากนั้นฉันจะติดตั้งไดรฟ์สองตัวใหม่ด้วยเครื่องนี้และเพิ่มไฟล์ทดสอบและโฟลเดอร์ต่าง ๆ ลงในไดรฟ์แต่ละตัว

ฉันวิ่งrsync -ahv --delete drive_x drive_yและทุกอย่างทำงานได้ดี

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