সম্পূর্ণ রিট্রান্সমিশন ছাড়াই কেবল আংশিকভাবে পরিবর্তিত কোনও বড় ফাইলকে আরএসআইএনসি আপডেট করতে পারে?


15

আমি একটি খুব বড় ফাইল ইমেজ ফাইলটিতে সামান্য পরিবর্তন করছি (মাত্র কয়েক পিক্সেল পার্থক্য) যা নেটওয়ার্কের মাধ্যমে স্থানান্তর করতে দীর্ঘ সময় নেয় takes

ফাইলের পার্থক্য চিহ্নিত করার জন্য এবং নেটওয়ার্কের মধ্যে কেবল ছোট ডিফার পাঠানোর জন্য কি আরসাইএনসি-র কোনও উপায় আছে?


3
কোনও নেটওয়ার্কে অনুলিপি করার সময়, rsyncডিফল্টরূপে এই জাতীয় আচরণ করে। যতক্ষণ না ক্ষুদ্র পরিবর্তনটি ফাইলটিতে একটি সামান্য পরিবর্তন হয় এবং ফাইলটি ইতিমধ্যে নিকট-অভিন্ন সংস্করণে লিঙ্কের উভয় পক্ষের মধ্যে উপস্থিত থাকে, স্থানান্তরিত ডেটা মোট ফাইলের আকারের চেয়ে অনেক কম হওয়া উচিত। ম্যান পৃষ্ঠার প্রথম অনুচ্ছেদ থেকে: "এটি ডেল্টা-ট্রান্সফার অ্যালগরিদম জন্য বিখ্যাত, যা গন্তব্যস্থলে সোর্স ফাইল এবং বিদ্যমান ফাইলগুলির মধ্যে পার্থক্য পাঠিয়ে নেটওয়ার্কের মাধ্যমে প্রেরিত ডেটার পরিমাণ হ্রাস করে।"
ব্যবহারকারী 4556274

আহ, ঠিক আছে, আপনার একটি মন্তব্য না করে উত্তর হিসাবে পোস্ট করা উচিত। এটি স্পষ্ট ছিল না যে আরএসসিএনসি এইভাবে আচরণ করে যাচ্ছিল, তবে সেই প্রত্যাশার সাথে, আমি ধরে নেব যে আমার ফাইলটি আমার প্রত্যাশার চেয়ে বেশি পরিবর্তিত হয়েছে এবং কেন তা তদন্ত করবেন। চিত্র সংক্ষেপণ প্রক্রিয়া সম্ভবত পুরো ফাইল জুড়ে কাঁচা বাইট মান পরিবর্তন করে।
ডেভিড পার্কস

উত্তর:


11

rsyncব-দ্বীপ-স্থানান্তর অ্যালগরিদম এটি ডিফল্টরূপে করে। আরএসসিএন ম্যানপেজটি উদ্ধৃত করা হচ্ছে :

বর্ণনা

Rsync একটি দ্রুত এবং অসাধারণ বহুমুখী ফাইল অনুলিপি সরঞ্জাম। এটি স্থানীয়ভাবে, অন্য কোনও হোস্ট থেকে যে কোনও রিমোট শেলের উপর থেকে, বা / দূরবর্তী আরএসসিএন ডেমন থেকে / অনুলিপি করতে পারে। এটি প্রচুর পরিমাণে বিকল্প সরবরাহ করে যা এর আচরণের প্রতিটি দিককে নিয়ন্ত্রণ করে এবং ফাইলগুলির সেট অনুলিপি করার জন্য খুব নমনীয় স্পেসিফিকেশনকে অনুমতি দেয়। এটি ডেল্টা-ট্রান্সফার অ্যালগরিদমের জন্য বিখ্যাত, যা গন্তব্যস্থলে কেবল উত্স ফাইল এবং বিদ্যমান ফাইলগুলির মধ্যে পার্থক্য পাঠিয়ে নেটওয়ার্কের মাধ্যমে প্রেরিত ডেটার পরিমাণ হ্রাস করে । Rsync ব্যাকআপ এবং মিররিংয়ের জন্য এবং প্রতিদিনের ব্যবহারের জন্য উন্নত অনুলিপি কমান্ড হিসাবে ব্যবহৃত হয়।

আপনি যদি এটি অক্ষম করতে চান তবে আপনাকে বিকল্প -Wবা --whole-fileবিকল্পটি ব্যবহার করতে হবে ।

-ডাব্লু, - পুরো ফাইল

এই বিকল্পটি আরএসইএনসি-র ডেল্টা-ট্রান্সফার অ্যালগরিদমকে অক্ষম করে, যার ফলে সমস্ত স্থানান্তরিত ফাইল পুরো পাঠানো হয়। উত্স এবং গন্তব্য মেশিনগুলির মধ্যে ব্যান্ডউইথ ব্যান্ডউইথথ থেকে ডিস্কের চেয়ে বেশি হলে এই বিকল্পটি ব্যবহৃত হয় (বিশেষত যখন "ডিস্ক" আসলে একটি নেটওয়ার্কযুক্ত ফাইল সিস্টেম হয়) তখন এই বিকল্পটি ব্যবহার করা দ্রুততর হতে পারে। এটি উত্স এবং গন্তব্য উভয়ই স্থানীয় পাথ হিসাবে নির্দিষ্ট করা হলে এটি ডিফল্ট, তবে কেবল কোনও ব্যাচ-রাইটিং বিকল্প কার্যকর না হলে।

আপনি যদি সত্যিই বুঝতে পারেন যে আপনার ফাইলটি কতটা পরিবর্তন করেছে, আপনি এমনকি ডেল্টা ব্লক আকারটি সুর করে এই ব-দ্বীপ স্থানান্তর আচরণটি অনুকূল করতে পারেন:

-বি, --ব্লক-সাইজ = ব্লকএসআইজেড

এটি আরএসইএনসি-র ডেল্টা-ট্রান্সফার অ্যালগরিদমকে ব্যবহৃত মানটিকে একটি নির্দিষ্ট মান হিসাবে বাধ্য করে। এটি প্রতিটি ফাইলের আপডেটের আকারের উপর ভিত্তি করে সাধারণত নির্বাচিত হয়। বিশদ জন্য প্রযুক্তিগত প্রতিবেদন দেখুন।

এবং আপনি যদি নিজেই অ্যালগরিদম সম্পর্কে আরও তথ্য চান তবে আপনি এটি এখানে পেতে পারেন: Rsync অ্যালগরিদম


সত্যি কথা বলতে গেলে ম্যানপেজে "ফাইল" এর বহুবচন রূপটি দ্বিধাগ্রস্ত: "উত্স ফাইল এবং বিদ্যমান ফাইলগুলির মধ্যে কেবলমাত্র পার্থক্য পাঠিয়ে ..." আমি পৃথক ফাইলের সংগ্রহ বোঝাতে "ফাইল" নিয়েছি এবং তা আরএসআইএনসি (সম্পূর্ণ) ফাইলগুলি আলাদা করে পাঠাত। এটি পরিষ্কার করা উচিত।
রাশ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.