আরএসসিএনসি দুটি স্থানীয় ড্রাইভের মধ্যে অনুলিপি করা ফাইলগুলি যাচাই করে?


65

আমি একটি স্থানীয় ড্রাইভ থেকে অন্য ড্রাইভে প্রচুর সংখ্যক ফাইলের একটি নতুন কপি তৈরি করতে চাই।

আমি পড়েছি যে কোনও নেটওয়ার্কের মাধ্যমে রিমোট মেশিনে পাঠানোর সময় আরএসসিএনসি ফাইলগুলির একটি চেকসাম তুলনা করে।

  1. দুটি স্থানীয় ড্রাইভের মধ্যে ফাইলগুলি অনুলিপি করার সময় কি আরএসসিএনসি তুলনা করে?

  2. এটি যদি যাচাই করে থাকে - এটি কি নিরাপদ বাজি? বা বাইট তুলনা করে বাইট করা ভাল?

উত্তর:


77

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

একবার ফাইল ডেটা প্রাপ্ত হয়ে গেলে, আরএসসিএনসি ফাইলটিতে ডেটা লিখে এবং বিশ্বাস করে যে কার্নেল যদি একটি সফল লেখার নির্দেশ দেয়, ডেটাটি ডিস্কে দুর্নীতি ছাড়াই লিখিত ছিল। আরএসআইএনসি ডেটাটি পুনরায় পাঠ করে না এবং অতিরিক্ত চেক হিসাবে পরিচিত চেকসামের সাথে তুলনা করে।

যাচাইকরণের জন্য, 30 এবং এর বাইরে প্রোটোকল (প্রথমে 3.0.0 এ সমর্থিত), আরএসসিএনডি MD5 ব্যবহার করে । পুরানো প্রোটোকলগুলির জন্য ব্যবহৃত চেকসামটি এমডি 4

সুরক্ষিত ক্রিপ্টোগ্রাফিক হ্যাশগুলির জন্য দীর্ঘকাল ধরে অপ্রচলিত হিসাবে বিবেচিত হওয়ার পরে, MD5 এবং MD4 ফাইল দুর্নীতি পরীক্ষা করার জন্য পর্যাপ্ত থেকে যায়।

উত্স: যাচাইকরণের জন্য ম্যান পেজ এবং আরএসসিএন উত্স কোডটি চোখের সামনে।


3
আমি প্রত্যেকের বুদ্বুদ ফেটে ঘৃণা করি না তবে আর-সি পতাকা যুক্ত হলে কেবল যোগফল যাচাই বাছাই করে!

27
@ ক্লিন্ট না, উত্তরটি সঠিক। -cপতাকাটির ম্যান পৃষ্ঠার ব্যাখ্যা থেকে : "নোট করুন যে rsync সর্বদা যাচাই করে যে প্রতি স্থানান্তরিত ফাইলটি ফাইলের স্থানান্তরিত হওয়ার সাথে সাথে তৈরি হওয়া একটি পুরো-ফাইল চেকসামটি যাচাই করে সঠিকভাবে পুনর্নির্মাণ করা হয়েছিল, তবে সেই স্থানান্তর পরে স্বয়ংক্রিয়ভাবে স্থানান্তর করার আগে এই বিকল্পটির সাথে যাচাইয়ের কোনও সম্পর্ক নেই "এই ফাইলটি আপডেট করার দরকার আছে কি?" চেক করুন।
মাইকেল মরোজেক

7
এই উত্তরটি এটি পরিষ্কার করে না যদি এটি একটি অনুলিপি করার পরে ফাইলটি আসলে যাচাই করে। ফাইলটি প্রাপ্ত হওয়ার সাথে সাথে যদি চেকসামটি গণনা করা হয়, তবে এটি কোনও পোস্ট-অনুলিপি চেকসাম নয় এবং আপনি নিশ্চিত করতে পারবেন না যে ফাইলটি সঠিকভাবে লেখা হয়েছে। তারপরে আপনার একটি অতিরিক্ত তুলনা করা দরকার।
আন্দ্রে মিলার

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

4
কাইল আমি বিশ্বাস করি না আপনি উত্তরটি ভুল বলেছেন। আমি ইতিমধ্যে এটি "বিশদটি ভালভাবে লিখিত এবং প্রযুক্তিগতভাবে সঠিক" উল্লেখ করেছি তবে পাঠকের অযথা মনোনিবেশ করা এবং যত্নবান হওয়া দরকার। 117 টি শব্দের পরে আপনার উত্তর দিয়ে অর্ধেক প্রশ্ন করা হচ্ছে এমন ডিস্ক ডেটা যাচাইয়ের অভাবকে কেন আবৃত্তি করবে যা বারবার অন্য অপ্রাসঙ্গিক যাচাই প্রক্রিয়া বর্ণনা করে? যাইহোক আপনার সময় এবং এই আলোচনার আগ্রহের জন্য ধন্যবাদ। আমি আন্তরিকভাবে এটি প্রশংসা করি।
nddou

40

rsyncস্থানীয় ফাইল কপিগুলির জন্য পোস্ট-অনুলিপি যাচাইকরণ করে না । আপনি যাচাই করতে পারেন যে এটি কোনও rsyncধীর (অর্থাত্ ইউএসবি) ড্রাইভে কোনও বড় ফাইল অনুলিপি করে এবং তারপরে একই ফাইলটি অনুলিপি করে না cp:

time rsync bigfile /mnt/usb/bigfile

time cp bigfile /mnt/usb/bigfile

উভয় কমান্ড একই পরিমাণে সময় নেয়, সুতরাং rsyncসম্ভবত চেকসামটি করতে পারে না - কারণ এটি স্লো ডিস্কের বাইরে গন্তব্য ফাইলটি পুনরায় পড়ার সাথে জড়িত।

manপৃষ্ঠাটি এই সম্পর্কে দুর্ভাগ্যবশত বিভ্রান্তিকর। আমি straceকপিটি সম্পূর্ণ হওয়ার পরে এটিও যাচাই করেছি , গন্তব্য ফাইলটিতে rsyncকোনও read()কল দেয় না, সুতরাং এটি চেক করা যায় না। আর আপনি যাচাই করতে পারেন এর মতো কিছু সহ iotop: আপনি rsyncএকই সাথে পড়া এবং লিখতে দেখেন (উত্স থেকে গন্তব্যে অনুলিপি করে), তারপরে এটি প্রস্থান করে। যদি এটি অখণ্ডতা যাচাই করে থাকে তবে কেবল পঠন পর্ব হবে।


1
"ম্যান পেজটি দুর্ভাগ্যক্রমে এটি সম্পর্কে বিভ্রান্ত করছে I আমি এটি স্ট্রেসের মাধ্যমেও যাচাই করেছি" আপনি কি রিমোট, চলমান আরএসসিএনসি প্রক্রিয়াটি বা স্থানীয় কোনওটি আঁকেন? গন্তব্যস্থলে দুটি ... একটি রান রয়েছে, এমনকি আপনি ssh ব্যবহার করার সময়ও।
ব্যবহারকারী 129070

8
স্থানীয় বা দূরবর্তী কোনও অনুলিপিগুলির জন্য পোস্ট-অনুলিপি যাচাইকরণ নেই। আপনি rsync -cযদি এটি পরীক্ষা করতে বাধ্য করতে চান তবে আপনি আবার দৌড়াবেন।
psusi

যাবতীয় যাচাইয়ের বিষয়টি আগমন স্ট্রিমে করা হয়। ফাইল সিস্টেমটি এটি লিখিত হয়েছে কিনা তা নিশ্চিত হয়ে থাকলে ডিস্ক থেকে এটি পুনরায় পড়ার প্রয়োজন হয় না।
অরেঞ্জডগ

17

rsyncইতিমধ্যে যা আছে তা অনুলিপি করতে এড়াতে, কিছু অনুলিপি করার আগে চেকসাম তুলনা করে (কিছু ক্ষেত্রে)। চেকসাম তুলনার মূল বিষয়টি কপিটি সফল হয়েছিল তা যাচাই করা নয়। এটি অন্তর্নিহিত অবকাঠামোর কাজ: ফাইল সিস্টেম ড্রাইভার, ডিস্ক ড্রাইভার, নেটওয়ার্ক ড্রাইভার ইত্যাদি Ind ব্যক্তিগত অ্যাপ্লিকেশন যেমন rsyncএই উন্মাদনার সাথে বিরক্ত করার প্রয়োজন নেই। rsyncত্রুটি নেই তা নিশ্চিত করার জন্য সিস্টেম কলের রিটার্ন মানগুলি যাচাই করে (এবং করতে!) সমস্ত প্রয়োজন।


1
এটি গৃহীত উত্তরের বিরোধিতা বলে মনে হচ্ছে ...
djule5

2
@ djule5 কীভাবে? গৃহীত উত্তরটি বেশিরভাগ ক্ষেত্রে কীভাবে ফাইলগুলি স্থানান্তরিত করে তা সিএসআইএনসি সম্পর্কে হয় তবে প্রশ্ন এবং আমার উত্তরটি স্থানীয় অনুলিপি সম্পর্কে ।
গিলস

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

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

1
@ কেন আপনি যে পয়েন্টটি বানাতে চাইছেন তা আমি বুঝতে পারি না। আমি সন্দেহ করি আপনি কিছু ভুলভাবে পড়েছেন। নেটওয়ার্ক কপি থাকলেই নেটওয়ার্ক ড্রাইভারগুলি খেলতে আসে। কোনও অনুলিপি করার আগে রাইইঙ্ক নিজেই একটি চেকসাম তুলনা করে , অনুলিপি করতে হবে কিনা তা সিদ্ধান্ত নিতে। রাইকিঙ্ক অনুলিপি করার পরে কোনও চেকসাম তুলনা করে না (কারণ এটি অর্থহীন হবে: এটি জানেন যে এটি কেবল অনুলিপি করেছেন)।
গিলস

4

দ্রুত এবং নোংরা উত্তর, সরাসরি প্রশ্নগুলির।

প্রশ্ন: rsyncদুটি স্থানীয় ড্রাইভের মধ্যে ফাইলগুলি অনুলিপি করার সময় তুলনাটি করবে ? উত্তর: এটি কী অনুলিপি করতে হবে তা নির্ধারণের সাথে তুলনা করবে।

প্রশ্ন: এটি যদি যাচাই করে থাকে - এটি কি নিরাপদ বাজি? বা বাইট তুলনা করে বাইট করা ভাল? উত্তর: ফাইলের MD5 চেকসামের পিছনে গণিতের মতোই নিরাপদ। আপনি সরঞ্জামটি শিখতে এবং বিশ্বাস করার জন্য সাধারণ পরীক্ষাটি করার চেষ্টা করতে পারেন।

দীর্ঘ উত্তর: আমার ধারণা, আপনি rsyncফাইলগুলি অনুলিপি করার পরে ফাইল তুলনা (কিছুটা বা চেকসাম দ্বারা) করতে চেয়েছিলেন । আপনি যদি সেই কয়েকটি ডাটা মানের অখণ্ডতার মধ্যে অন্যতম হন তবে আপনি নীচেরটিকে দরকারী বলে মনে করতে পারেন:

rsync -avh [source] [destination] && rsync -avhc [source] [destination] 

উপরের কোড rsyncফাইল ফাইল ফোল্ডারটি প্রথম চালাতে এবং যদি ইস্যু ছাড়াই সম্পূর্ণ হয় তবে সম্পূর্ণ rsyncফাইলের হ্যাশ ব্যবহার করে একই ফাইলের নামের তুলনা করার সময় সঙ্গে সঙ্গে আবার চলবে ।


1

একটি সদৃশ অখণ্ডতা যাচাই করতে rsync ব্যবহার

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

যদি লিনাক্স পুনরায় আরম্ভ না করা হয় তবে আপনার কমপক্ষে ক্যাস ( * ) বাদ দিয়ে দেওয়া উচিত :

sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'

তারপরে দুটি গাছ পুনরায় পড়ুন এবং তাদের চেকসামগুলি তুলনা করুন:

rsync --dry-run --checksum --itemize-changes --archive SRC DEST

আধুনিক আরএসসিএনসি চেকসাম এমডি 5 ব্যবহার করে যা 128 বিট। পৃথক ফাইলে ত্রুটি সনাক্ত করতে ব্যর্থ হওয়ার সম্ভাবনাটি জ্যোতির্বিজ্ঞানের দিক থেকে কম ( এখানে কিছু আলোচনা ) তবে অসম্ভব নয়।



শুভকামি সঠিকভাবে পিছনে স্ল্যাশ পেতে।
নোবার

কোন সংবাদই ভালো সংবাদ না.
নোবার

--checksumপরীক্ষা না করা অবধি বিরক্ত করবেন না ।
নোবার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.