मौजूदा गंतव्य सहानुभूति rsync के साथ संरक्षित करना


10

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

दुर्भाग्य से, ऐसा लगता है कि rsync सिमलिंक को हटा रहा है और लगभग पूर्ण डिस्क को फिर से भरना है। कुछ खोज के बाद, मैंने --keep-dirlinksrsync के विकल्प की खोज की , जो लगता है कि मेरी समस्या को ठीक करने के लिए दर्जी है।

केवल यह नहीं है। लक्ष्य पर सहानुभूति अभी भी नष्ट हो रही है।
यहाँ मेरा rsync कमांड है:

rsync --recursive --keep-dirlinks --links --hard-links --times --verbose \
 --delete --delete-excluded $EXCLUDE $SOURCE_EXCLUDE \
 $RSYNC_HOST::$RSYNC_DIR/pool/ $TO/pool/

EXCLUDE का विस्तार उन आर्किटेक्चर की बड़ी संख्या को खत्म करने के लिए किया गया है, जिनकी मैं दिलचस्पी नहीं रखता, की तर्ज पर --exclude binary-alpha/ --exclude disks-alpha ...। Rsync लॉन्च होने से पहले, मेरी पूल निर्देशिका इस तरह दिखती है:

lrwxrwxrwx  1 root root   23 2014-09-22 13:58 contrib -> /u2/debian/pool/contrib
drwxrwxr-x 62 root root 4096 2012-04-09 03:02 main
lrwxrwxrwx  1 root root   24 2014-09-22 13:58 non-free -> /u2/debian/pool/non-free

एक बार rsync में किक करने के बाद, मुझे यह मिल गया:

receiving incremental file list
deleting non-free
deleting contrib
./
contrib/
contrib/a/

और इसी तरह, और फ़ाइलों के पूर्ण निर्देशिकाओं के साथ सहानुभूति को प्रतिस्थापित किया जाता है।

अन्य rsync विकल्पों में से कुछ के साथ हस्तक्षेप कर रहे हैं --keep-dirlinks? मैं किन लोगों को जोड़ नहीं सकता? या क्या यह उन विकल्पों का क्रम है जो मेरी समस्या का कारण बन रहे हैं?

जवाबों:


7

--deleteऔर --delete-excludedविकल्प, अपनी योजना के साथ हस्तक्षेप के रूप में वे देखते हैं कि वहाँ सिमलिंक स्रोत पर नहीं है और इस तरह इसे हटा दें।

यह केवल तब होता है जब आप rsyncपूरी निर्देशिका को source/ targetसंकेतन (स्रोत के बाद अनुगामी स्लेश) के साथ कॉपी करने के लिए कहते हैं । यदि आप source/* targetइसके बजाय उपयोग करते हैं, तो शेल कॉपी करने के लिए फ़ाइलों और निर्देशिकाओं की सूची का विस्तार करेगा और ऐसा नहीं होगा (लेकिन --dry-runपहले के साथ प्रयास करें )।

हालाँकि, इस नाजुक सेटअप के बजाय, मैं LVM की मदद से दो डिस्क को एक बड़ी मात्रा में बनाने के लिए इस तरह की प्रवंचना की जरूरत नहीं है।


धन्यवाद! मैंने स्क्रिप्ट बदल दी है और यह काम करने लगता है। यह मुझे थोड़ा समय देगा - डिस्क अभी भी भरने के लिए जा रहा है, लेकिन मेरे पास चीजों को स्थानांतरित करने का समय है। आप LVM के साथ दो के संयोजन के बारे में सही हैं। मैं पहले से ही इस पर विचार कर रहा था, लेकिन अपने पैरों को खींच रहा था क्योंकि इसका मतलब है कि चीजों को स्थानांतरित करना और फिर उन्हें वापस ले जाना। हालांकि, मुझे लगता है कि बाद में जल्दी से बेहतर।
unkilbeeg

मेरे पास एक ऐसी ही समस्या थी जिसका उपयोग मैं -एक विकल्प के बिना -keep-dirlinks का उपयोग करके हल किया गया था। तीसरे पैराग्राफ के लिए "माइनर" झुंझलाहट, जो फ़ाइल सिस्टम मैं उपयोग कर रहा हूं वह 64 टी बाइट सैन "डिस्क" हैं। जबकि यह संभव है कि गुणकों को अभी तक बड़े पैमाने पर जोड़ा जा सकता है, 256 टेराबाइट ड्राइव कहते हैं, मुझे उम्मीद है कि व्यवस्थापक लोगों के पास आकार के कारण हैं। कभी-कभी "ट्रिकरी" जैसा दिखता है बस काम कर रहा है कि आपके पास कैसे रहना है।
14:16 पर user1683793

मेरा अंतिम समाधान नया हार्डवेयर था। मूल मशीन केवल IDE ड्राइव का समर्थन करने के लिए पर्याप्त पुरानी थी, और उन दिनों में आपको मिलने वाली सबसे बड़ी ड्राइव 512G थी।
unkilbeeg
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.