আমি আমার স্থানীয় ম্যাকের একটি রিমোট লিনাক্স সার্ভার থেকে ডেটা ব্যাকআপ করতে rsync ব্যবহার করতে চাই। এবং আমি আমার স্থানীয় ম্যাকটিতে এই অপারেশনটি শুরু করতে চাই। একটি বিশেষ চরিত্রের সমস্যাটি ব্যতীত সমস্ত কিছুই ঠিকঠাক কাজ করে: আমি যখনই আরএসইএনসি অপারেশনটি পুনরায় চালিত করি (প্রাথমিক সিঙ্কের পরে), বিশেষ অক্ষরের ফাইলগুলি প্রথমে মুছে ফেলা হয় এবং তারপরে পুনরায় সিঙ্ক হয়। আমি যতদূর বুঝতে পেরেছি, বিভিন্ন চরিত্রের সেটগুলির সাথে একটি সমস্যা রয়েছে এবং পছন্দসই সমাধানটি--iconv
বিকল্পটি ব্যবহার করা বলে মনে হচ্ছে :
আপনি ইউটিএফ -8 এনএফসি এবং এনএফডি-র মধ্যে রূপান্তর করতে আরএসইএনসি এর --iconv বিকল্পটি ব্যবহার করতে পারেন, যদি আপনি কোনও ম্যাকে থাকেন তবে। একটি বিশেষ utf-8-mac অক্ষর সেট রয়েছে যা ইউটিএফ -8 এনএফডি বোঝায়। সুতরাং আপনার ম্যাক থেকে আপনার এনএএস-তে ফাইলগুলি অনুলিপি করতে আপনার এমন কিছু চালানো দরকার:
rsync -a --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/
এটি ইউটিএফ -8 এনএফডি থেকে দূরবর্তী সার্ভারে ইউটিএফ -8 এনএফসি তে সমস্ত স্থানীয় ফাইলের নাম রূপান্তর করবে। ফাইলগুলির বিষয়বস্তু প্রভাবিত হবে না।
সমস্যাটি হ'ল এটি কেবল আমার জন্য 'একতরফা' কাজ করে, যথাঃ ম্যাক থেকে লিনাক্সে সিঙ্ক করার সময়। তবে আমি 'অন্য পথে যেতে চাই', অর্থাৎ লিনাক্স মেশিনটি ম্যাকের সাথে সিঙ্ক করতে চাই। এবং আমি আমার স্থানীয় ম্যাক থেকে অপারেশনটি শুরু করতে চাই। তবে আমি যখন চেষ্টা করি:
rsync -av --delete --iconv=utf-8,utf-8-mac mynas:remotedir/ localdir/
আমি একটি ত্রুটি পেয়েছি:
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]
কেন এটি কাজ করে না তা বুঝতে আমার ক্ষতি হয় loss ম্যাকে আমার আরএসএনসি সংস্করণটি ২.6.৯ থেকে আপডেট হয়েছে। 3.1.1 থেকে। ম্যাকপোর্টগুলি ব্যবহার করে । নোট করুন যে অপারেশন তখন কাজ করে যখন আমি (ম্যাকের উপর, নোটার উপরে) ম্যাক থেকে লিনাক্সের মাধ্যমে একটি আরএসএনসি শুরু করি:
rsync -av --delete --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/
কিন্তু অন্যভাবে 'ম্যাক থেকে - যা আমি যা করতে চাই তা - কাজ করে না।
আশ্চর্যজনকভাবে যথেষ্ট, লিনাক্স মেশিন থেকে সিঙ্ক শুরু করার পরীক্ষা এই অদ্ভুত বার্তাটিকে রেন্ডার করে:
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 এ আপডেট করেছি। কিছু কারণে, আমার লিনাক্স মেশিনটি ম্যাকের মূল আরএসসিএন সংস্করণটিকে 'দেখায়' বলে মনে হচ্ছে।
এটি সমাধান করার জন্য কোনও পরামর্শ?
২৩ শে অক্টোবর আপডেট করুন : লি @ সার্ভার থেকে সিঙ্কের সূচনা করে এখন জনসনের দুর্দান্ত পরামর্শ (নীচে দেখুন) প্রতি কাজ করছে works সম্পূর্ণতার জন্য, আমি এখন সমস্ত সংমিশ্রণ চেষ্টা করেছি এবং একটি আকর্ষণীয় প্যাটার্ন উদ্ভূত হয়েছে:
ম্যাক অন:
ওয়ার্কস: ম্যাক থেকে লিনাক্স পর্যন্ত ফাইল
ব্যর্থতা: লিনাক্স থেকে ম্যাক পর্যন্ত ফাইল
লিনাক্সে
ওয়ার্কস: লিনাক্স থেকে ম্যাক পর্যন্ত ফাইল
ব্যর্থতা: ম্যাক থেকে লিনাক্স ফাইল Files
অন্য কথায়, --iconv
বিকল্পটি কেবল একটি উপায় হিসাবে কাজ করবে বলে মনে হচ্ছে, স্থানীয় মেশিন থেকে রিমোটে ফাইলগুলি, অন্যদিকে নয়। এটি আমার কাছে একটি বাগের মতো মনে হচ্ছে, তবে সম্ভবত এটিই কাজ করার জন্য সাপুড হয়?
কেউ এই বিষয়ে আলোক ভাগ করতে সক্ষম?
.DS_Store
সিঙ্কগুলি থেকে বাদ দিচ্ছিলাম এবং এই ওএসএক্সের কারণে এই ফাইলগুলির সাথে ডিরেক্টরিগুলি মুছতে পারেনি। আমি অক্ষরটি সেটআপ করি --iconv
, ম্যাকের সাথে আরএসসিএনসি পাথটি --rsync-path
(আমি হোমব্রিউ ব্যবহার করছি) দিয়ে, এবং তারপরে যুক্ত করতে হয়েছিল --delete-excluded
যাতে জেদী ডিরেক্টরিগুলি মুছে ফেলা যায়।
rsync
ম্যাকটিতে একটি কাস্টম (উদাহরণস্বরূপ হোমব্রু থেকে) ব্যবহার করা হচ্ছে এবং এটি লিনাক্স থেকে কল করার সময় এটি ব্যবহার করে সঠিক পথটি নির্দিষ্ট করা প্রয়োজন--rsync-path="/usr/local/bin/rsync"