Rsync त्रुटि 23: क्या मैं बता सकता हूं कि कौन सी फाइलें स्थानांतरित नहीं हुईं?


32

मैं sudo rsync -va --progressएक बाहरी ड्राइव के रूट से दूसरे बाहरी ड्राइव पर एक फ़ोल्डर में भाग गया। कारण यह है कि स्रोत ड्राइव में एक त्रुटि-पूर्ण NTFS है और NTFS की मरम्मत के लिए मेरे पास एक विंडोज पीसी तक पहुंच नहीं है।

10 घंटे बाद यह कहा:

sent 608725204596 bytes  received 19365712 bytes  15902210.53 bytes/sec
total size is 608586212274  speedup is 1.00
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-42/rsync/main.c(992) [sender=2.6.9]

मैंने पूरे टर्मिनल आउटपुट को सहेजा। शुरुआत में, कुछ सौ Input/output error (5)फाइलें हैं जिनके लिए मुझे वास्तव में कुल 2GB की आवश्यकता नहीं है। OSX खोजक "डिस्क उपयोग" मुझे बताता है कि स्रोत 617 बिलियन बाइट्स है, न कि 608 उपरोक्त रिपोर्ट में।

प्रशन:

  1. क्रिया आउटपुट का पहला भाग (फ़ाइल सूची बनाना) निश्चित रूप से Input/output error (5)हर फ़ाइल के लिए कहता है जिसे कॉपी नहीं किया जाएगा?
  2. क्या code 23इसका मतलब यह है कि Input/output error (5)लोगों को छोड़कर सभी फाइलों को सफलतापूर्वक कॉपी किया गया था?

1
संभवतः मददगार: rsync त्रुटि संदेश "rsync:" के साथ शुरू होता है, इसलिए grep '^rsync: ' outputसहायक हो सकता है।
बैरीकेटर सेप

जवाबों:


19

23 केवल साधन (मैन पेज से):

23 त्रुटि के कारण आंशिक स्थानांतरण

जो कुछ भी स्थानांतरित नहीं किया जा सका, उसके लिए आपको एक त्रुटि संदेश मिलेगा। ध्यान दें कि त्रुटि संदेश निर्देशिकाओं को खोलने या पढ़ने के बारे में हो सकते हैं, इसलिए आपको आवश्यक रूप से प्रत्येक फ़ाइल के लिए एक त्रुटि संदेश नहीं दिखाई देगा जिसे स्थानांतरित नहीं किया जा सकता है।

यदि आपका स्रोत नहीं बदला है, तो आप यह देखने के लिए rsyncफिर से चला सकते -nहैं कि यह इस बार वास्तव में हस्तांतरण किए बिना क्या स्थानांतरित करेगा।

बाइट अंतर के बारे में, rsyncआपको फ़ाइलों का आकार देता है (उनसे कितना डेटा पढ़ा जा सकता है)। क्या आप वाकई इसके बजाय डिस्क उपयोगFinder को नहीं बता रहे हैं ?

यह भी ध्यान दें कि NTFS फाइलों की वैकल्पिक धाराओं या विशेषताओं में डेटा स्टोर कर सकता है , और rsyncआमतौर पर उन लोगों को स्थानांतरित नहीं करेगा (जिनके बारे में पता नहीं है) और (साथ ही साथ बहुत कुछ खाता भी हो सकता है)।


तो क्या आप यह कह रहे हैं कि सभी डेटा (चाहे वह कितना भी भ्रष्ट क्यों न हो) को शुरुआत में सूचीबद्ध नहीं किया गया था Input/output error (5)?
थीडर

बाइट अंतर के बारे में: हां यह सही है। मैं इस बारे में उलझन में हूं कि rsync की रिपोर्ट और फाइंडर के "डिस्क उपयोग" के बीच का अंतर 9 बिलियन बाइट्स का क्यों है, लेकिन मैं केवल 2-3 बिलियन बाइट्स की पहचान कर सकता हूं जिन्होंने कहा था Input/output error (5)। क्या तुम समझा सकते हो?
थीडर

1
@themirror, 1-बाइट फ़ाइल को अभी भी स्टोर करने के लिए डिस्क पर आवंटित कुछ किलो-बाइट्स की आवश्यकता होगी (यह echo > file; du -k fileदेखने की कोशिश करें कि स्रोत फाइलसिस्टम पर कितना है, लेकिन ntfs पर, यह आमतौर पर 4k है)। rsyncआपको बताएगा कि आकार है 1, लेकिन खोजकर्ता आपको उस फ़ाइल के लिए 4096 बता सकता है।
स्टीफन चेजेलस

@themirror, अपनी पहली टिप्पणी पर टिप्पणी करें, मैं कह रहा हूं कि सब कुछ के लिए (फ़ाइल सामग्री, वैकल्पिक धाराओं के बारे में मेरा संपादन देखें) जिसे स्थानांतरित नहीं किया जा सकता है, आपको एक त्रुटि मिलेगी, लेकिन अगर आपको कोई निर्देशिका नहीं मिल सकती है / फू , तो जाहिर है /foo/barऔर /foo/bar/bazया तो स्थानांतरित नहीं किया जाएगा।
स्टीफन चेजलस

17

आप rsync के गैर-त्रुटि आउटपुट को rsync के -qध्वज का उपयोग करके चुप करा सकते हैं ।

-q, --quiet                 suppress non-error messages

यदि आप -qध्वज के साथ फिर से rsync चलाते हैं , तो rsync संभवतः विफल हो जाएगा, लेकिन कम से कम इस बार कोई भी त्रुटि संदेश जो आपकी समस्या का कारण बन रहे हैं, वे फ़ाइल स्थानांतरण स्थिति संदेशों की पंक्तियों और लाइनों के नीचे दफन नहीं होंगे।


2

पुन :: त्रुटि 23-- इस त्रुटि के लिए सबसे सामान्य कारण rsync स्रोत में एक मामूली टाइपो दर्ज करना है। अपने सोर्स कमांड को देखें और सुनिश्चित करें कि सब कुछ एलएस के खिलाफ चेक आउट करता है, और एक अतिरिक्त जगह या 1-एल समस्या जैसी बेवकूफ सूक्ष्म चीजों की तलाश करें।


मुझे पता है कि यह मूर्खतापूर्ण है, लेकिन मैं भी कोड के माध्यम से खुदाई करने के लिए मार्ग बना रहा जब तक मुझे एहसास नहीं हुआ कि मैंने यह गूंगा गलती की है। धन्यवाद!
18
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.