rsync: सबसे ऊपरी निर्देशिका को बाहर कैसे करें


14

इसलिए, मेरे पास एक आसान सा मुद्दा है, लेकिन अभी तक मुझे कोई समाधान नहीं मिला है: मैं अपने सभी बच्चों को सिंक करते हुए, rsync से सबसे ऊपरी निर्देशिका को बाहर करना चाहता हूं। विशेष मुद्दा यह है कि मेरे पास सर्वोच्च निर्देशिका के समय को संशोधित करने की अनुमति नहीं है, लेकिन सभी बच्चे चाहते हैं कि समय का तालमेल ठीक से हो।

मैं जिस rsync कमांड का उपयोग कर रहा हूं वह इस प्रकार है:

rsync --exclude ./ -rlptDu ./ server.example.com:/usr/local/directory/

और server.example.com:/usr/local/directory/इस तरह दिखता है:

drwxrws---  5 root   staff 24576 Jul  9 15:00 .

(मेरा स्थानीय उपयोगकर्ता सदस्य है staff)

जब मैं rsync चलाता हूं, तो मुझे निम्न त्रुटि मिलती है:

rsync: failed to set times on "/usr/local/directory/.": Operation not permitted (1)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]
make: *** [pub_to_mel_internal] Error 23

यह स्थानीय मशीन पर संस्करण 3.0.9 है और रिमोट पर 3.0.7, दोनों मशीनें डेबियन चल रही हैं।


क्या आप इस उदाहरण में वाक्य रचना से परिचित हैं: wirepeed.xs4all.nl/mediawiki/index.php/… यह आपको एक विशिष्ट अपवर्जित निर्देशिका से विशिष्ट फ़ाइलों / निर्देशिकाओं को शामिल करने की अनुमति देता है। हालाँकि आपको एक बहिष्कृत फ़ाइल का उपयोग करना पड़ सकता है।
जिप्पी

हाँ। मुद्दा यह है कि मैं toplevel निर्देशिका (विशेष रूप से) को बाहर करने के लिए इसे समझाने के लिए प्रतीत नहीं कर सकता। मेरे पास मिक्सिंग / अतीत में शामिल नहीं होने के मुद्दे नहीं थे, ऐसा लगता है जैसे कि टॉपवेल एक विशेष मामला है।
स्टीव पोमोरॉय

जवाबों:


8

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

rsync -rlptDu -- * server.example.com:/usr/local/directory/

जोड़े .[!.]*के बाद *आप सर्वोच्च निर्देशिका में डॉट फ़ाइलें है, और ..?*यदि आप फ़ाइल नाम दो डॉट्स के साथ शुरुआत की है।


2
बहुत अच्छे धन्यवाद! यह काम करता है। इस तकनीक का एकमात्र नकारात्मक पहलू यह है कि इसके लिए सभी फाइलों को चुनने के लिए शेल की आवश्यकता होती है। यदि आपके पास निर्देशिका में टन फाइलें हैं (जो कि मैं अपने मामले में नहीं हूं), तो यह घुट सकती है। शायद xargs (हालांकि - thedelete विकल्पों के साथ नहीं) का उपयोग करके तय किया जा सकता है।
स्टीव पोमेरॉय

एक समस्या जो मुझे इस्तेमाल करने *में मिली, वह --deleteथी किसी भी फाइल को डिलीट नहीं करना, क्योंकि वे सर्च का हिस्सा नहीं थीं।
thomasa88

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