১. ফাইলের নামগুলিতে বিশেষ অক্ষর সহ সমস্যা
ফাইলের নামগুলিতে কোনও বিশেষ অক্ষর রয়েছে? আপনি যে ফাইল সিস্টেমে এই ফাইলগুলি লিখছেন তার উপর নির্ভর করে, তারা আপনাকে কোনও বিন্দু দিয়ে ফাইলগুলি উপসর্গের অনুমতি দিতে পারে না (.
উদাহরণস্বরূপ আপনাকে ) ।
২.আরসিএনসি পরিবর্তনের সময় এবং ওয়েবড্যাভ ২ নিয়ে সমস্যা
আমি এই ব্লগ পোস্টটি জুড়ে এসেছি যেখানে rsync
ওয়েবডাভ 2 মাউন্ট করা বাক্স ডটকম ডিরেক্টরিগুলি ফাইল জুড়ে ফাইল পরিবর্তনের সময় ফাইল লেখার / ট্র্যাকিংয়ের সমস্যায় একটি সমস্যা বর্ণিত হয়েছে।
মাউন্ট করা ফাইল সিস্টেমে সমস্যাটি এরকম প্রদর্শিত হচ্ছে:
david@sydney:~/Pictures$ ls -l /mnt/box/bwca/08/09/IMG_3084.CR2
-rw-r--r-- 1 david david 12564061 Aug 14 16:08 /mnt/box/bwca/08/09/IMG_3084.CR2
david@sydney:~/Pictures$ ls -l 2012/08/09/IMG_3084.CR2
-rw-rw-r-- 1 david david 12564061 Aug 9 13:00 2012/08/09/IMG_3084.CR2
সেই একই নিবন্ধটি একটি কার্যপ্রণালী দেখিয়েছে:
$ rsync -avhP --size-only --bwlimit=64 2012/08 /mnt/box/bwca/
এটি ব্যবহারের একটি দুর্দান্ত উপায় rsync
, তবে এটি কেবল এখন তাদের আকারের উপর ভিত্তি করে ফাইলগুলি তুলনা করছে, চেকসামগুলি নয়।
৩. ডেভফএস ২ (ওয়েবডিএভি) সহ সমস্যাগুলি
আমি এই থ্রেড জুড়ে এসেছি শিরোনাম: dvfs2 মাধ্যমে rsync? সোর্সফোরেজে ওয়েবডিএভি (ডেভস) ফোরামে। কেউ একই পরিস্থিতি সম্পর্কে জিজ্ঞাসাবাদ করছেন যেখানে তারা কোনও অনলাইন স্টোরেজ সরবরাহকারীর জন্য মাউন্ট করতে ওয়েবডিএভি ব্যবহার করতে এবং ওয়েবডিএভি দিয়ে মাউন্ট করা স্টোরেজে আরএসসিএনসি সম্পাদন করতে চেয়েছিলেন। ওয়েবডিএভি-র একজন বিকাশকারী (ওয়ার্নার বাউমন) এই বিষয়ে এই কথাটি বলতে চেয়েছিলেন ।
ওয়ার্নারের প্রতিক্রিয়া
davfs2 শুধুমাত্র সম্পূর্ণ ফাইল আপলোড করবে। এটি সাধারণত ইনক্রিমেন্টাল স্টাফ আরএসএনসি করতে পারে না এবং এটি আরএসএনসিটিকে খুব দক্ষ করে তোলে।
davfs2 ডিস্কে একটি স্থানীয় ক্যাশে ব্যবহার করে। এটি এটিকে আরও প্রতিক্রিয়াশীল করে তুলবে এবং আপনার অ্যাপ্লিকেশনটি এ থেকেও লাভজনক হবে। তবে এটির জন্য এটির জন্য স্থানীয় ডিস্কের স্থান প্রয়োজন। আপনার একটি বৃহত ক্যাশে আকারের অনুমতি দেওয়া উচিত, সুতরাং আরএসসিএনসি এর বেশিরভাগ কাজ স্থানীয় ক্যাশে দিয়ে করতে পারে এবং ডিএসএফএস 2 ব্যাকগ্রাউন্ডে বেশিরভাগ ফাইল আপলোড করবে, যখন আরএসসিএন ইতিমধ্যে শেষ হয়ে গেছে।
ওয়ার্নার নিম্নলিখিত পরামর্শ দিতে চলেছে
এই ক্ষেত্রে এটি একটি অসুবিধা হতে পারে। যখন rsync রিমোট হোস্টে কোনও ফাইল পড়ে, এটি অবশ্যই davfs2 দ্বারা প্রথমে স্থানীয় ক্যাশে স্থানান্তরিত করতে হবে (যদি এটি ইতিমধ্যে সেখানে না থাকে)। এটি প্রক্রিয়াটিকে সত্যই এবং অপ্রয়োজনীয় ধীর করে দিতে পারে। যেহেতু আপনার ক্ষেত্রে আরএসসিএনসি কেবল একটি পরিশীলিত অনুলিপি-প্রোগ্রাম হিসাবে কাজ করে, তার পরিবর্তে সিপি ব্যবহার করা ভাল। সিপিতে কেবলমাত্র ফাইলগুলি কপি করার জন্য একটি বিকল্প রয়েছে (-u) যা ড্যাভফএস 2 ফাইল সিস্টেমের (= স্মার্টড্রাইভ) ফাইলের চেয়ে নতুন এবং এটি ফাইলগুলি পড়ার দরকার নেই, তবে কেবল এমটাইমের মতো ফাইল মেটা ডেটা পড়ে reads
"সিপি -প্রু ডিরেক্টরি / টু / ব্যাকআপ ডেভ /" এর মতো একটি কমান্ড কাজটি করতে পারে। এটি ফাইল ডাউনলোড না করায় ধাঁধা দেয় (যেমন rsync পারে তবে আমি নিশ্চিত নই) (দয়া করে সিপি এবং আরএসএনসি-র ম্যানুয়ালগুলি দেখুন)।
বিকল্প?
@ অ্যান্থনের পরামর্শ অনুসারে, cp -u
ফাইলগুলি অনুলিপি করার জন্য আপনি এই পদ্ধতিটি ব্যবহার করতে পারেন । উপলব্ধি করে যে এই পদ্ধতিটি কেবলমাত্র একটি ফাইলের আকারের তুলনায় একটি ফ্যাক্টর হিসাবে দেখায়, তাই এটি সম্পূর্ণ নির্ভরযোগ্য নয়।
ফাইলগুলির তুলনা করার সময় আপনার এমন কিছু ব্যবহার করা উচিত যা কেবল পরিবর্তনের সময়ে দেখায় cp -pru
। ভার্নার কেন এই থ্রেডে ব্যাখ্যা করেছেন :
মোড সময় নিয়ে ইস্যুতে অংশ
আপনি যখন কোনও ডেভএফএস 2 ফাইল সিস্টেম আনমাউন্ট করে এবং কিছু পরে আবার মাউন্ট করেন, তখন সার্ভারের সময় তথ্য অনুসারে ফাইলের সময় পরিবর্তন হতে পারে। সিপি -পু এবং আরএসএনসি-এর মতো সরঞ্জামগুলি এই মুহুর্তে কোন ফাইলগুলি পরিবর্তন হয়েছে তা নির্ধারণ করতে নির্ভর করতে পারে না।
বিশুদ্ধরূপে চেকসাম ব্যবহার করে এমন একটি পদ্ধতির পরিবর্তনের সময়টিকে ঘিরে বিভিন্ন সমস্যার সমাধান দেওয়া আরও ভাল ফিট বলে মনে হচ্ছে:
$ rsync -avvz --omit-dir-times --checksum --human-readable --progress <local dir> <remote dir>
--max-size=250M --exclude '.*'
। আমি নিশ্চিতcp
যে এটি করার জন্য তৈরি করা যেতে পারে ... সম্ভবত সিপিতে সন্ধানের আউটপুটটি পাইপ দিয়ে? তবে আমি কীভাবে এটি করতে জানি না। যদি আমরা কোনও সমাধান নিয়ে আসি, আমি চেষ্টা করবcp -ru
। ধন্যবাদ