ACL को संरक्षित करते समय rsync का उपयोग करके टाइम मशीन वॉल्यूम को किसी अन्य डिस्क पर कैसे कॉपी करें?


9

हाल ही में मुझे अपने मैक के फाइलसिस्टम को केस-प्रोटेक्शन से पूरी तरह केस-सेंसिटिव होने के लिए बदलना पड़ा। मैंने ऐसा किया है कि CCC का उपयोग करके और डेटा को किसी अन्य डिस्क पर कॉपी करके, फिर नए स्वरूपित मुख्य डिस्क पर वापस आ रहा हूं।

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

स्वाभाविक रूप से, मैं सीधे rsync के लिए गया था, लेकिन इससे एक समस्या पैदा होती है - अगर मैं इसे चलाता हूं:

/usr/local/bin/rsync --super -aEHAXNvx --fileflags --delete /Volumes/Time\ Machine\ Backups/ /Volumes/NewDisk/

जैसे ही यह Backups.backupdb/<machinename>फोल्डर को हिट करता है, यह शिकायत करना शुरू कर देता है failed to set permissions, operation not permitted। यहाँ समस्या एसीएल की नकल कर रही है, जो काफी प्रतिबंधात्मक हैं:

 ll -dle /Volumes/Time\ Machine\ Backups/Backups.backupdb/<machinename>/
 drwxr-xr-x@ 19 root  staff  646 Dec 23 09:38 /Volumes/Time Machine Backups/Backups.backupdb/<machinename>/
 0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown

इसलिए, मैंने -Aउपरोक्त कमांड से हटा दिया , और rsync अब खुशी से जीबी डेटा स्थानांतरित कर रहा है।

काश, मैं एसीएल को भी संरक्षित करना चाहता। क्या यह किसी तरह संभव है? OS X में getfacl / setfacl नहीं है, और मैं इसके पार्सिंग आउटपुट से बचना चाहूंगा ls -le। मैं यहाँ एक समाधान के रूप में जो कुछ भी देख रहा हूँ, वह है rsync को ACLs "बैकवर्ड" लागू करने के लिए, अर्थात पत्ती फाइलों से लेकर निर्देशिकाओं तक, लेकिन इसके लिए कोई विकल्प नहीं है।


क्या गंतव्य पर rsync उन फ़ाइलों को चोदने की अनुमति के साथ एक उपयोगकर्ता के रूप में चल रहा है?
हरमुन

यह एक स्पष्ट सवाल हो सकता है, लेकिन क्या आपको यकीन है कि गंतव्य की मात्रा में एसीएल समर्थन चालू है? आप का मतलब है कि आप एक मैक की नकल कर रहे हैं, जो कि होना चाहिए, लेकिन उस स्थिति में यह केवल तब तक काम करना चाहिए जब तक कि उस उपयोगकर्ता के मूल फ़ाइल के रूप में एक ही उपयोगकर्ता आईडी # नहीं है, जिस स्थिति में आपको संभवतः सेट करना होगा। जड़, या मूल का उपयोग करने के लिए स्विच (स्पष्ट रूप से एक अच्छी बात नहीं है, लेकिन किसी और को स्वामित्व स्थापित करने की अनुमति की समस्या का ख्याल रखता है)।
टॉम स्कोगलैंड

इसके अलावा, यह कहा गया है कि उपयोगकर्ता खाते को लक्ष्य के लिए परिभाषित किया जाना चाहिए, अन्यथा स्वामी को सेट नहीं किया जा सकता है।
harrymc

जवाबों:


3

Homebrew का उपयोग करके rsync संस्करण 3 डाउनलोड करें। फिर आप "--acls" विकल्प आज़मा सकते हैं। मैक पर rsync अन्य ऑपरेटिंग सिस्टम से थोड़ा अलग कमांड लाइन सिंटैक्स लगता है। आप शायद इस लिंक पर एक नज़र डालना चाहते हैं: http://nicolasgallagher.com/mac-osx-bootable-backup-drive-with-rsync/ । यह वर्णन करता है कि rsync 3 और कमांड लाइन तर्क का उपयोग कैसे करें।

मैं OSX उपयोगकर्ता नहीं हूं, लेकिन मैं अपनी पत्नी के मैक को rsync के साथ लिनक्स सर्वर पर वापस भेज देता हूं।


2

rsync, कम से कम OS X 10.4 और निम्न में, ACE विशेषताओं को स्थानांतरित करेगा यदि -E विकल्प का उपयोग किया जाता है। मैन पेज देखें।


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