NTFS / FAT और EXT के बीच rsync काम नहीं कर रहा है


14

मेरे पास एक संगीत है जिसे मैं अपनी कार में खेलता हूं, एक एफएटी 32 यूएसबी स्टिक से। फ़ोल्डर जिसे मैं गाने डालने के लिए उपयोग करता हूं, वह मेरे EXT4 हार्ड ड्राइव पर संग्रहीत है। मैं नियमित रूप से और कभी-कभी rsyncUSB स्टिक में बदलावों को जोड़ना / हटाना / हटाता हूं । लेकिन किसी अज्ञात कारण (शायद अनुमतियाँ?) के लिए, rsyncहर बार केवल बदले हुए फ़ाइलों की बजाय सभी फ़ाइलों को कॉपी करता है। मैं rsyncजैसे कह रहा हूं :

rsync -vrlptgD source dest

मैं इसे कैसे काम कर सकता हूं जैसे मैं इसे चाहता हूं (यानी जब कोई फ़ाइल नहीं बदली गई हो और इसे कॉपी न करें)?

जवाबों:


18

जेवियर रिवेरा का जवाब काम करता है, लेकिन rsync को सभी फ़ाइल चेकसमों की जांच और तुलना करने में काफी लंबा समय लगता है। मैंने पाया कि निम्न विकल्प का उपयोग करना मेरे लिए बेहतर काम करता है:

rsync -rtv --modify-window=1 /source /dest

--modify-window=1स्विच टाइम स्टांप पर ± +1 का विचरण के लिए अनुमति देता है। इस विकल्प को सक्षम करने के साथ, टाइमस्टैम्प की तुलना अधिक उदार होगी और NTFS / FAT और यूनिक्स फाइल सिस्टम के बीच के समय के अंतर को कम करेगी।

स्रोत (ger): http://www.kai-hildebrandt.de/tutorials/rsync.html

पुनश्च: कृपया ध्यान रखें कि DST वर्ष में दो बार पूर्ण फ़ाइल स्थानांतरण का कारण बनेगा। अधिक जानकारी और संभावित समाधान के लिए यहां देखें ।


यह भी खूब रही। मैं भी विकल्प पाया --iconvसहायक होता है जब गंतव्य MacOS के लिए स्रोत लिनक्स से जा रहा
विम

2
किसी कारण से मुझे उपयोग करने की आवश्यकता है modify-window=2क्योंकि =1अभी भी सभी फ़ाइलों की प्रतिलिपि बनाता है। NTFS से FAT32 में नकल करना। उसके बाद हालांकि यह ठीक है।
ल्यूक

मैंने --size-onlyध्वज को उन फ़ाइलों को छोड़ने के लिए जोड़ा, जो आकार में मेल खाते हैं
अलेक्जेंडर

1
@ alexandre1985: यह उन फ़ाइलों को छोड़ देगा जो उनकी सामग्री को बदल देती हैं, लेकिन उनके आकार को नहीं। आपको इसका उपयोग केवल तब करना चाहिए जब आप केवल उन फ़ाइलों का बैकअप लेना चाहते हैं जो हमेशा सामग्री बदलने पर आकार बदलते हैं, उदाहरण के लिए क्योंकि डेटा केवल उनके लिए संलग्न है लेकिन कभी भी ओवरराइट नहीं किया गया है।
डेविड फ़ॉस्टर

11

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

अंत में, आपके कमांड में कुछ विकल्प हैं जो FAT32 फाइल सिस्टम के साथ काम नहीं कर सकते हैं।

  • -L लिंक संरक्षित करेगा, FAT32 में लिंक की कोई अवधारणा नहीं है
  • -p अनुमति को संरक्षित करने की कोशिश करेगा, फिर से FAT32 पर कोई अनुमति नहीं
  • -यह संशोधन टाइमस्टैम्प को संरक्षित करने की कोशिश करेगा, FAT32 पर केवल एक टाइमस्टैम्प है
  • -g समूह स्वामित्व को संरक्षित करने की कोशिश करेगा, फिर से FAT32 द्वारा समर्थित नहीं
  • -D विशेष फ़ाइलों और उपकरणों को संरक्षित करने की कोशिश करेगा, अब आप यहां आते हैं।

जैसा कि htorque comments, अमान्य विकल्पों से आपको कोई नुकसान नहीं होगा, वे सिर्फ कुछ नहीं करेंगे। लेकिन आपको -सी स्विच जोड़ना होगा।

इस:

rsync -vrc source dest

काम करना चाहिए (कम से कम यह मेरे कंप्यूटर पर काम करता है)।


3

मैं OSX के तहत एक समान मुद्दा रहा था, और Glutanamate के जवाब से कोई मदद नहीं मिली। कुछ फाइलें एक घंटे से भिन्न होती हैं; ऐसा इसलिए हो सकता है क्योंकि मैं टाइमज़ोन को अपेक्षाकृत कम पार करता हूं। अन्य फाइलें एक दिन या एक महीने तक बंद रहती हैं। मुझे यकीन नहीं है कि ऐसा क्यों है। व्यापक रूप से भिन्न टाइमस्टैम्प्स के साथ कुछ फाइलों पर जाँच से पता चलता है कि वे वास्तव में समान हैं।

किसी भी मामले में, यह --size-onlyविकल्प की तरह दिखता है , जो rsyncटाइमस्टैम्प को अनदेखा करने के लिए कहता है, मेरे उद्देश्यों के लिए काम करेगा। -c/ --checksum(जेवियर द्वारा उल्लिखित) भी काम करता है, लेकिन इसमें थोड़ा अधिक समय लगता है। मैंने इसे समयबद्ध किया और जीबी के लिए चेकसम की तुलना करने में लगभग एक मिनट का समय लगा। बेशक जिस गति से यह होता है वह सिस्टम में सबसे धीमी ड्राइव पर निर्भर करेगा; मेरे मामले में, मेरे फोन में एसडी कार्ड है। हालाँकि, इसके बाद मैं पहले से ही कुछ फ़ाइल हेरफेर (चेकसमिंग सहित) कर रहा था, इसलिए कई फाइलें पहले ही रैम कैश में कॉपी की जा सकती थीं।


1

आपको लोकप्रिय -a विकल्प का उपयोग करने से भी बचना चाहिए। FAT32 पर मेरी सिफारिश है

 rsync -vrc --delete --progress --no-p source  destination

-नो-पी: कोई अनुमति नहीं

-delete: गंतव्य में बेजोड़ फ़ाइलों और फ़ोल्डर को हटा दें (यदि आप वास्तव में यह चाहते हैं)

--प्रक्रिया: स्थानांतरण के दौरान प्रगति दिखाएं। यह बड़ी फ़ाइलों के लिए अच्छा है।


1
मेरे पास से एक उत्थान है, हालांकि अतिरिक्त में -vrc, मैं भी करता हूं-vrcz
एंटोनी

0

आपके द्वारा उपयोग किए जा रहे बहुत से झंडे (-vrlptgD) हैं। याद रखें, rsync एक Linux उपयोगिता है और यह Fat32 और NTFS के साथ प्रभावी रूप से काम नहीं करता है।

आप इसे उपयोग करने में सक्षम होने के लिए चाल के लिए शिकार करना होगा।

प्रयत्न:

rsync -rvh --size-only --progress --delete /path/to/ext4/ /path/to/fat32/

अधिक जानकारी यहाँ

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