ম্যাকের উপর আরএসআইএনসি - আইকনভ বিকল্পটি কাজ করছে না (দূরবর্তী লিনাক্স সার্ভার থেকে স্থানীয় ম্যাকের সাথে সিঙ্ক করুন)


9

আমি আমার স্থানীয় ম্যাকের একটি রিমোট লিনাক্স সার্ভার থেকে ডেটা ব্যাকআপ করতে 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বিকল্পটি কেবল একটি উপায় হিসাবে কাজ করবে বলে মনে হচ্ছে, স্থানীয় মেশিন থেকে রিমোটে ফাইলগুলি, অন্যদিকে নয়। এটি আমার কাছে একটি বাগের মতো মনে হচ্ছে, তবে সম্ভবত এটিই কাজ করার জন্য সাপুড হয়?

কেউ এই বিষয়ে আলোক ভাগ করতে সক্ষম?


1
যখন rsyncম্যাকটিতে একটি কাস্টম (উদাহরণস্বরূপ হোমব্রু থেকে) ব্যবহার করা হচ্ছে এবং এটি লিনাক্স থেকে কল করার সময় এটি ব্যবহার করে সঠিক পথটি নির্দিষ্ট করা প্রয়োজন--rsync-path="/usr/local/bin/rsync"
মেডুজ

আমি .DS_Storeসিঙ্কগুলি থেকে বাদ দিচ্ছিলাম এবং এই ওএসএক্সের কারণে এই ফাইলগুলির সাথে ডিরেক্টরিগুলি মুছতে পারেনি। আমি অক্ষরটি সেটআপ করি --iconv, ম্যাকের সাথে আরএসসিএনসি পাথটি --rsync-path(আমি হোমব্রিউ ব্যবহার করছি) দিয়ে, এবং তারপরে যুক্ত করতে হয়েছিল --delete-excludedযাতে জেদী ডিরেক্টরিগুলি মুছে ফেলা যায়।
ড্যানিয়েল

উত্তর:


12

প্রচুর পরীক্ষা-নিরীক্ষার পরেও এবং @ লি জনসনের সহায়ক পরামর্শের ফলে, অবশেষে আমি সমাধানটি খুঁজে পেলাম, যা এখন আমাকে বিব্রতকররূপে সুস্পষ্ট বলে মনে করে। সমস্যাটি নিয়ে গবেষণা করার সময় আমি যে মন্তব্যটি পড়েছিলাম তার কারণে আমি ভেবেছিলাম পরিবর্তনের ক্রম অনুসারে আপনার চরিত্র সেটটি নির্দিষ্ট করা উচিত; তবে মনে হচ্ছে এটি সঠিক বাক্য গঠন নয়। বরং, একটি করা উচিত

সর্বদা ব্যবহার --iconv=utf-8-mac,utf-8যখন থেকে ম্যাক rsync initialising, এবং সবসময় ব্যবহার --iconv=utf-8,utf-8-macযখন লিনাক্স মেশিন থেকে rsync initialising, আমি যদি ম্যাক বা লিনাক্স মেশিন থেকে ফাইল সিঙ্ক করুন করতে চান কোন ব্যাপার।

তাহলে ম্যাজিকের মতো কাজ করে!


ইউটিএফ 8-ম্যাকটি একটি সিউডো-চরসেট এবং এটি লিনাক্স সিস্টেমে আইকনভ্লিবের সাথে পাওয়া যায় না, এমনকি উবুন্টু 14.04 এলটিএসের সর্বশেষতম 3.1.1 সংস্করণও নেই। যদি আপনি লিনাক্সে সিঙ্কটি শুরু করার চেষ্টা করেন তবে এটি কাজ করছে না।
আচিম ল্যামার্টস

5

আপনি কি সম্প্রতি ওএস এক্স ইয়োসেমাইটে আপগ্রেড করেছেন? আমার একই সমস্যা ছিল, আমি মনে রাখার আগে আমি সংস্করণ 3.1 সহ আপডেট / usr / bin / rsync আপডেট করেছি। আমি যখন ইয়োসেমাইটে আপগ্রেড করেছি, তখন এটি পুরানো ২.6.৯ সংস্করণে প্রতিস্থাপিত হবে।

আমার নিজের ক্ষেত্রে, আমি আমার 3.1 আরএসসিএনকে আবার / ইউএসআর / বিনের সাথে সংযুক্ত করে ম্যাকের উপরে সমস্যাটি সমাধান করেছি:

sudo -s
cd /usr/bin
mv rsync rsync-2.6.9
ln -s /usr/local/bin/rsync .
exit

মিলিয়নকে ধন্যবাদ, আমি কেন এটি ২.6.৯ পেয়েছি তার রহস্য সমাধান করে। বার্তা। (আমার ম্যাকে, যদিও ম্যাকপোর্টের ইনস্টল করা সংস্করণটি / অপ্ট / লোকাল / বিন / আরএসএনসি-তে রয়েছে তবে সেই খেলাটির লিঙ্কটি ম্যাজিকের কাজ করে)) দুর্ভাগ্যক্রমে, আমি আমার ম্যাক মেশিন থেকে সিঙ্কটি আরম্ভ করতে চাই, সুতরাং এটি কেবল সহায়তা করে আমার যতদূর বুঝতে পেরেছি যে আমার লিনাক্স মেশিনটি কী করবে তা বুঝতে পারে। তাহলে কেন আমার ম্যাক থেকে আরম্ভ করার সময় এটি কাজ করে না? এটি হ'ল, "আরএসসিএনএভ - ডিলেট - আইকনভ = ইউটিএফ -8, ইউটিফ -8-ম্যাক মাইনা: রিমোটেডের / লোকালডির /"
নিক দ্য

আমি আরও বলে রাখি যে দুর্ভাগ্যক্রমে আপনার সহায়ক উত্তরটি +1 করতে সক্ষম হবার জন্য আমার কাছে খুব কম খ্যাতি রয়েছে এবং যেহেতু এটি এখনও আমার এটির মতো কাজ করে না, তাই আমি এটিকে সমাধান হিসাবে টিক দিতে পারি না। আমার মনে সোনার তারা, যে কোনও ক্ষেত্রে (এবং আমি প্রতিশ্রুতি দিয়েছি যে আমি ফিরে যেতে পারি এবং + + আমার প্রতিবেদক 15 এর উপরে পৌঁছানোর সাথে সাথে আপনাকে +1 করব)!
নিক দ্য সুইডেন

আপনি কি বলছেন যে এটি এখনও ওএস এক্স দিক থেকে কাজ করে না, এমনকি rsync 3.x চলছে? আমি মনে করি না যে --iconvএটি 2.6.9 এ সমর্থিত; এমনকি যদি rsync হ্যান্ডলিংয়ের জন্য কেবল রিমোট হোস্টের কাছে বিকল্পটি পাঠাচ্ছে তবে এটি ওএস এক্স পার্শ্বের বিকল্পটি সনাক্ত করতে হবে। which rsync; rsync --versionওএস এক্স টার্মিনাল থেকে আপনাকে কী বলে ?
লি জনসন

এটাই সঠিক. আপনি যেমন ত্রুটি বার্তায় দেখতে পাচ্ছেন (প্রশ্নের তৃতীয় ধূসর উদ্ধৃতি), এটি সনাক্ত করতে পারে যে আমি ম্যাকটিতে ৩.১ ব্যবহার করছি: [রিসিভার = 3.1.1], এবং দাবি করেছে যে ক্রিয়াটি সমর্থিত নয়, যদিও এটি স্পষ্টতই কাজ করে লিনাক্স দিক থেকে, পাশাপাশি যখন আমি সিঙ্ক করি তখন ম্যাক থেকে লিনাক্স সার্ভারে ম্যাক থেকে ফাইলগুলি। তবে ম্যাক থেকে, লিনাক্স থেকে ম্যাক পর্যন্ত ফাইলগুলি কাজ করে না। এত অদ্ভুত (আমার নুব চোখের দিকে অন্তত)।
নিক দ্য সুইডে

2
আপনি যখন লিনাক্স থেকে এটি চেষ্টা করছেন, আপনি যদি --rsync-path=/opt/local/bin/rsyncম্যাক সাইডে আপনার 3.1.1 সংস্করণটি জানার মতো কিছু দিয়ে এক্সিকিউটেবল পাথটি বাধ্য করেন তবে কি হবে ?
লি জনসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.