कॉम्प्लेक्स में rsync के साथ शामिल / शामिल नहीं है


14

मैं जटिल शामिल / बहिष्कृत करने के लिए rsync फ़िल्टर सिंटैक्स को वर्कआउट करने की कोशिश कर रहा हूं, और निम्नलिखित प्राप्त करने की कोशिश कर रहा हूं:

Include /
Exclude /home
Include /home/user1/*
Include /home/user2/subdir/*

मैंने फ़िल्टर सिंटैक्स पर कई बदलावों की कोशिश की है, और मैन पेज को कई बार पढ़ने के बावजूद, मुझे इस तरह का प्रभाव नहीं मिल सकता है। Rsync फ़िल्टर बहुत शक्तिशाली प्रतीत होते हैं, और मुझे यह विश्वास करना कठिन लगता है कि वे इस तरह से एक सामान्य परिदृश्य को संभाल नहीं सकते थे।

जवाबों:


17

अपवर्जित नियम का उपयोग करने से पहले आपको सभी मूल निर्देशिकाओं को वांछित निर्देशिका में शामिल करना होगा।

उदाहरण के लिए, मैं बैकअप स्क्रिप्ट में निम्नलिखित का उपयोग करता हूं:

rsync -av \ 
--filter='+ /var/' \
--filter='+ /var/backups/' \
--filter='- /var/*' \
/ \
$DEST

तो आपके मामले में आपको कुछ इस तरह की आवश्यकता होगी:

rsync -av \ 
--filter='+ /home/' \
--filter='+ /home/user1/' \
--filter='+ /home/user2/' \
--filter='+ /home/user2/subdir/' \
--filter='- /home/user2/*' \
--filter='- /home/*' \
/ \
$DEST

अति उत्कृष्ट। मुझे कुछ समय लगा।
16

किसी तरह, जब मैं पढ़ता हूं, तो मुझे man rsyncमिश्रण के उचित आदेश को गलत समझा जाता है और इसमें शामिल नहीं है। मुझे यह पता लगाने में एक घंटे का समय लगा ...
एडम रिक्जेकोस्की

6

कमांड लाइन पर:

rsync --dry-run --verbose --recursive --include=/home/user1 --exclude=/home/* / DEST

--dry-runइसे क्रियाशील बनाने के लिए निकालें , अपने गंतव्य के साथ "DEST" बदलें और यदि आवश्यक हो तो उपयोगकर्ता और स्रोत "/" को होस्ट करें।

एक नियम फ़ाइल से:

rsync --dry-run --verbose --recursive --filter='merge /etc/rsync/somerules.rules' / DEST

जहां सामग्री /etc/rsync/somerules.rulesहो सकती है:

+/ /home/user1
-/ /home/*

आपको इनका परीक्षण करना चाहिए और आपको कुछ समायोजन करने की आवश्यकता हो सकती है, लेकिन यह आपको शुरू करना चाहिए।


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