rsync निर्देशिका स्वामित्व को -a के साथ भी संरक्षित नहीं करता है


12

मैं अपने घर निर्देशिका का बैकअप लेने के लिए इस rsync मंगलाचरण का उपयोग करता हूं:

rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT"

rsync मैन पेज कहता है कि -a का अर्थ है -g और -o (अन्य स्विच के बीच), जो स्वामित्व को संरक्षित करना चाहिए। हालाँकि मैंने देखा है कि अगर कोई निर्देशिका मौजूद नहीं है $BACKUP_MNTPOINT/$USER_HOME, तो इसे रूट: सही स्वामित्व के बजाय रूट स्वामित्व के साथ बनाया जाता है। (यह केवल निर्देशिका के अंतर्गत होता है $BACKUP_MNTPOINT/$USER_HOME)। ऐसा क्यों है?

$BACKUP_MNTPOINTएक स्थानीय घुड़सवार ड्राइव है। $BACKUP_MNTPOINT/$USER_HOMEसही स्वामित्व और अनुमतियाँ हैं। न तो $USER_HOMEहै और न ही $BACKUP_MNTPOINTएक स्लैश के साथ समाप्त होता है।

स्रोत और लक्ष्य फाइलसिस्टम दोनों ही XFS हैं और चल रहा mkdir $BACKUP_MNTPOINT/$USER_HOMEहै जो अपेक्षित स्वामित्व के साथ एक निर्देशिका बनाता है।


1
फाइलसिस्टम क्या है $BACKUP_MNTPOINTऔर इसे किस विकल्प के साथ रखा गया है? क्या यह केवल माता-पिता ( $BACKUP_MNTPOINT/$USER_HOME) निर्देशिका या निर्मित सभी निर्देशिकाओं के लिए होता है? करो $BACKUP_MNTPOINTऔर $USER_HOMEएक के साथ अंत /?
terdon

मैं दोनों /homeऔर बैकअप ड्राइव के लिए XFS का उपयोग करता हूं । अब तक मुझे लगता है कि यह केवल मूल निर्देशिका के लिए हुआ है। न तो $BACKUP_MNTPOINTहै और न ही $USER_HOMEएक स्लैश के साथ समाप्त होता है। संपादित करें: मैं पुष्टि कर सकता हूं कि यह केवल नीचे निर्देशिकाओं में होता है$BACKUP_MNTPOINT/$USER_HOME
क्राल्यक

तो $BACKUP_MNTPOINT/$USER_HOMEसही अनुमति है लेकिन किसी भी उपनिर्देशिका नहीं है? कृपया अपना प्रश्न संपादित करें और इन विवरणों को जोड़ें। यह भी स्पष्ट करें कि क्या mkdir $BACKUP_MNTPOINT/$USER_HOME/fooआप अपने उपयोगकर्ता के स्वामित्व वाली निर्देशिका बनाते हैं यदि आप इसे मैन्युअल रूप से करते हैं।
terdon

हां, mkdir $BACKUP_MNTPOINT/$USER_HOME/fooउपयोगकर्ता के स्वामित्व के साथ एक निर्देशिका बनाता है।
क्राल्याक

से प्रासंगिक जानकारी देखना वास्तव में अच्छा होगा strace(जैसा कि छद्म उत्तर में निर्दिष्ट है)।
पावेल Paमरदा

जवाबों:


18

rsyncअपने सर्वर पर अपने सिस्टम का बैकअप लेते समय मुझे इसी तरह की समस्या थी । मैंनें इस्तेमाल किया:

rsync -aAXSHPr \
-e ssh \
--rsync-path="sudo /usr/bin/rsync/" \
--numeric-ids \
--delete \
--progress \
--exclude-from="/path/to/file/that/lists/excluded/folders.txt" \
--include-from="/path/to/file/that/lists/included/folders.txt" \
/ USER@SERVER:/path/to/folder/where/backup/should/go/

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


1
वाह, यह मेरे लिए बिल्कुल नहीं हुआ, अच्छी तरह से देखा, धन्यवाद।
क्रालिक

0

शायद sts / truss के माध्यम से rsync चलाएं और देखें कि क्या आपको chown () syscall से कोई त्रुटि मिलती है, और यह भी पुष्टि करने के लिए कि chown () के पास सही पथ और UID / GID है।


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