मैं एक मैक पर रहने वाले डिस्क के साथ अपने Ubuntu सर्वर का बैकअप लेने के लिए rsync का उपयोग करना चाहता हूं। लेकिन मुझे यह ठीक से काम करने के लिए नहीं मिलता है, क्योंकि हर बार जब मैं शुरुआती समय के बाद rsync ऑपरेशन को फिर से चलाता हूं, तो विशेष वर्ण वाली फ़ाइलों को पहले हटा दिया जाता है और फिर पुन: सिंक किया जाता है। ऐसा लगता है जैसे विभिन्न चरित्र सेट के साथ कोई समस्या है।
पसंदीदा समाधान का उपयोग करने के प्रतीत हो रहा है --iconv
विकल्प:
आप कम से कम यदि आप मैक पर हैं तो आप UTF-8 NFC और NFD के बीच कनवर्ट करने के लिए rsync's-iconv विकल्प का उपयोग कर सकते हैं। एक विशेष utf-8-mac वर्ण सेट है जो UTF-8 NFD के लिए खड़ा है। तो अपने मैक से अपने एनएएस में फ़ाइलों की प्रतिलिपि बनाने के लिए, आपको कुछ इस तरह चलाने की आवश्यकता होगी:
rsync -a --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/
यह UTF-8 NFD से सभी स्थानीय फ़ाइलनामों को रिमोट सर्वर पर UTF-8 NFC में बदल देगा। फ़ाइलों की सामग्री प्रभावित नहीं होगी।
@Jan की बदौलत, मैंने अपने rsync संस्करण को अपने मैक पर 2.6.9 से अपडेट किया । 3.1.1 को। फिर भी, मैं अभी भी काफी नहीं हूँ, क्योंकि मुझे अब एक और त्रुटि मिली है:
iconv_open("UTF-8", "utf-8-mac") failed
rsync error: requested action not supported (code 4) at rsync.c(118) [sender=3.0.9]
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [Receiver=3.1.1]
मुझे यह समझने में हानि हो रही है कि "अनुरोधित कार्रवाई का समर्थन क्यों नहीं किया गया" क्योंकि ऐसा लगता है कि मेरे उबंटू (12.04) पर rsync संस्करण 3.xx पोस्ट है, और इस तरह से --iconv
विकल्प का समर्थन करना चाहिए ।
संपादित करें: मुझे जोड़ने दें कि जब मैं (मैक पर, nota bene) मैक से लिनक्स पर rsync आरंभ करता हूं, तो सब कुछ शानदार तरीके से काम करता है:
rsync -av --delete --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/
लेकिन मैक से दूसरे रास्ते पर जाने से काम नहीं चलता। अजीब तरह से, linux मशीन से rsync आरंभ करने के लिए परीक्षण इस अजीब संदेश को प्रस्तुत करता है:
rsync: on remote machine: --iconv=UTF-8-MAC: unknown option
rsync error: syntax or usage error (code 1) at /SourceCache/rsync/rsync-45/rsync/main.c(1333) [server=2.6.9]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]
बहुत अजीब दावे सहित [server=2.6.9]
, हालांकि मैंने मैक पर 3.1.1 को अपडेट किया है। कुछ कारणों से, यह दिखता है कि मेरी लिनक्स मशीन मैक पर केवल मूल rsync संस्करण को देखती है।
इसे हल करने के बारे में कोई सुझाव?