लिनक्स में इनपुट / आउटपुट त्रुटि की व्याख्या और निर्धारण कैसे करें?


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 की असंभवता को इंगित करता है। इस त्रुटि के सबसे संभावित कारण डिस्क दोष हैं, या तो एसआरसी में या टीजीटी निर्देशिका में। अन्य संभावनाओं में हालांकि अपर्याप्त अनुमति, एंटी-वायरस प्रोग्राम द्वारा फ़ाइल लॉक और maybeअन्य कारण शामिल हैं।

निदान की ओर पहला कदम फाइलों को मैन्युअल रूप से कॉपी करने का प्रयास करना है। यह काम कर सकता है, उदाहरण के लिए, त्रुटि का स्रोत टीजीटी निर्देशिका में डिस्क दोष था; ऑपरेशन को बाद में दोहराते हुए, आप डिस्क के एक अलग सेक्शन में लिखेंगे और समस्या का वाष्पीकरण हो सकता है।

वैकल्पिक रूप से, आपको पता चल सकता है कि आप SRC निर्देशिका में फ़ाइल तक नहीं पहुँच सकते। इस मामले में मेरा सुझाव है कि आप अपने डिस्ट्रो के लिए उपलब्ध किसी भी डिस्क जाँच उपयोगिताओं को नियोजित करते हैं।

अपर्याप्त विशेषाधिकार, एंटी-वायरस, निदान करना आसान है।

अंत में, यदि आपके एसआरसी निर्देशिका पर एक बुरा क्षेत्र है, तो आप भविष्य के आरएसएनएक्स के भविष्य के रन से बाहर कर सकते हैं

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

धन्यवाद! यह एक और सवाल होने के जोखिम पर, मुझे कैसे पता चलेगा कि यह एसआरसी या टीजीटी निर्देशिका है यदि मैं विशेषाधिकारों या एंटी-वायरस को नियंत्रित कर सकता हूं?
14

एक एंटी-वायरस कुछ समय के लिए फाइलों को लॉक कर देता है। यदि यह समस्या है, तो कुछ समय बाद उसी कमांड को पुनः आज़माकर उसी त्रुटि को प्रस्तुत नहीं करना चाहिए। विशेषाधिकारों का मामला आसान है: एसआरसी और टीजीटी मशीनों दोनों पर रूट खाते का उपयोग करें। यदि आप ऐसा नहीं कर सकते हैं, तो जांच लें कि जिन फाइलों पर rsync विफल रहता है, वे आपके लिए सुलभ हैं, अर्थात वे खाते उन तक पहुंचने की कोशिश कर रहे हैं, और यदि वे नहीं चाहते हैं कि आपने उन तक पहुंच पढ़ ली है। यदि यह आपके मामले को हल करता है, तो कृपया मेरे उत्तर को स्वीकार करने के लिए याद रखें, यह अन्य पाठकों के लिए उपयोगी है।
MariusMatutiae

आपने ऊपर मेरी टिप्पणी को गलत समझा। कोई बात नहीं, मैं एक नया सवाल पूछूंगा।
28

TGT सिर्फ लक्ष्य है, है ना? सिर्फ लक्ष्य कहना बेहतर होगा।
जैस्पर

ऐसा लगता है कि आपके उत्तर ने एक पूरे लेख को जन्म दिया bobcares.com/blog/rsync-input-output-error_5 (संदर्भ के बिना, निश्चित रूप से)।
यारोस्लाव निकितेंको

3

मेरे पास एक समान मुद्दा था, मेरे पास यूएसबी के माध्यम से फ्यूज-माउंटेड डिवाइस था, जो अक्सर डिस्कनेक्ट हो जाता था, जिससे आईओ त्रुटियां होती थीं। मेरा बैकअप कभी समाप्त नहीं हो सकता क्योंकि IO त्रुटियां rsync में मध्य-मार्ग प्रारंभ करेंगी, और rsync को बार-बार चलाने के बावजूद, कुछ बिंदु पर सिंक मौजूदा फ़ाइलों को अपडेट करने से परे प्रगति नहीं करेगा।

मेरे समाधान का उपयोग करना था

--ignore-existing 

विकल्प। इस तरह से मैं 0 निकास स्थिति को देखने तक सिंक को लूप में चला सकता था।

बेशक, इस मामले में मैंने मौजूदा फाइलों के अपडेट की परवाह नहीं की।


0

मेरे पास 2 बाहरी ड्राइव हैं जो मैं सिंक में रखता हूं, का उपयोग करके rsync। मैं यह कार्य नियमित रूप से दो मशीनों में करता हूं, और अक्सर सुविधा के लिए एक से दूसरे पर स्विच करता हूं। मेरे पास डेबियन 9 चलाने वाली 4 मशीनें हैं, और उनमें से प्रत्येक पर इन ड्राइव का उपयोग करें।

आज सुबह मैंने निम्नलिखित प्रयोग किया:

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 मिला, और मैंने इसे हटा दिया। मैं हमेशा पीयूए को हटाता हूं। मैंने तब इस मशीन के साथ दो ड्राइवों को रिमूव किया, और प्रत्येक ड्राइव में अलग-अलग टेस्ट फाइल और फ़ोल्डर्स जोड़े।

मैं भागा rsync -ahv --delete drive_x drive_yऔर सब कुछ ठीक चला।

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