আমি শোবার চেষ্টা করলাম। ভাল (এবং কিছু দরকারী আলাদা আলাদা বৈশিষ্ট্য রয়েছে যা এটি অনেকের পক্ষে সেরা পছন্দ করে তুলতে পারে), মনে হয় চেকসামের জন্য সমস্ত টার্গেট ফাইলের সম্পূর্ণতা স্ক্যান করে।
যা বেদনাদায়ক ধীর।
অন্যদিকে অন্যান্য প্রোগ্রাম, যেমন rdfind এবং rMLint, আলাদাভাবে স্ক্যান করে।
আরডিফাইন্ডে বিটিআরএফস রিফ্লিংক ব্যবহারের জন্য একটি "পরীক্ষামূলক" বৈশিষ্ট্য রয়েছে। (এবং হার্ডলিঙ্কস, সিমলিঙ্কস ইত্যাদির জন্য "শক্ত" বিকল্পগুলি)
আরটিএমএলিন্টে বিটিআরএফএস ক্লোন, রিফ্লিংক, নিয়মিত হার্ডলিঙ্কস, সিমলিঙ্কস, মুছুন এবং আপনার নিজস্ব কাস্টম কমান্ডের জন্য "শক্ত" বিকল্প রয়েছে।
তবে আরও গুরুত্বপূর্ণ, rdfind এবং rMLint উল্লেখযোগ্যভাবে দ্রুত হয়। হিসাবে, আকারের আদেশ। চেকসামের জন্য সমস্ত টার্গেট ফাইল স্ক্যান করার পরিবর্তে এটি প্রায়, এটি করে:
- কেবলমাত্র পথ এবং ফাইলাইজগুলি সংগ্রহ করে পুরো টার্গেটের ফাইল সিস্টেমটি স্ক্যান করুন।
- বিবেচনা থেকে সরান, অনন্য ফাইল আকারযুক্ত ফাইল। এটি কেবলমাত্র সময় এবং ডিস্ক ক্রিয়াকলাপ সংরক্ষণ করে। ("স্ক্যাডস" হ'ল কিছু বিপরীত সূচকীয় ফাংশন বা কিছু)
- বাকি প্রার্থীদের মধ্যে প্রথম এন বাইট স্ক্যান করুন। বিবেচনা থেকে সরান, একই ফাইল আকারযুক্ত তবে পৃথক প্রথম এন বাইটগুলি।
- সর্বশেষ এন বাইটের জন্য একই করুন।
- কেবলমাত্র (সাধারণত ক্ষুদ্র ভগ্নাংশ) অবশিষ্ট রয়েছে, চেকসামগুলির জন্য স্ক্যান করুন।
RMLint এর অন্যান্য সুবিধাগুলি সম্পর্কে আমি সচেতন:
- আপনি চেকসাম নির্দিষ্ট করতে পারেন। এমডি 5 খুব ভয়ঙ্কর? Sha256 চেষ্টা করুন। অথবা 512. অথবা বিট-বিট-তুলনা। বা আপনার নিজস্ব হ্যাশিং ফাংশন।
- এটি আপনাকে রিফ্লিংক না করে Btrfs "ক্লোন" এবং "রিফ্লিংক" এর বিকল্প দেয়। "সিপি --রেফ্লিংক = সর্বদা" কিছুটা ঝুঁকিপূর্ণ, এটি কোনও পারমাণবিক নয়, কার্নেলের মধ্যে সেই ফাইলটির জন্য আর কী চলছে তা অবগত নয় এবং এটি সর্বদা মেটাডেটা সংরক্ষণ করে না। "ক্লোন", ওটিওএইচ (যা সংক্ষিপ্ত শব্দটি ... আমি অফিসিয়াল এপিআই-সম্পর্কিত নামটি ফাঁকা করছি), এটি একটি কর্নেল-স্তরের কল যা পারমাণবিক এবং মেটাডেটা সংরক্ষণ করে। প্রায় সর্বদা একই জিনিস ফলে, কিন্তু একটি বাচ্চা আরও মজবুত এবং নিরাপদ। (যদিও বেশিরভাগ প্রোগ্রামগুলি ডুপ্লিকেট ফাইলটি মুছতে না পারার পক্ষে যথেষ্ট স্মার্ট, যদি এটি প্রথমে অন্যটির সাথে সফলভাবে কোনও টেম্পল রিফ্লিংক করতে না পারে))
- এটিতে অনেকগুলি ব্যবহারের ক্ষেত্রে একটি টন বিকল্প রয়েছে (এটিও একটি অপূর্ণতা)।
আমি আরডিএমএলিন্টকে ডিডাপ্রেমোভের সাথে তুলনা করেছি - যা চেকসামের জন্য প্রতিটি টার্গেট ফাইল অন্ধভাবে স্ক্যান করে। ডুপ্রেমভ আমার ভলিউমটি সম্পূর্ণ করতে বেশ কয়েক দিন সময় নিয়েছিল (4 আমি মনে করি), সম্পূর্ণ কাত হয়ে যাচ্ছি। ডুপ্লিকেট সনাক্ত করতে fmlint কয়েক ঘন্টা সময় নিয়েছে, তারপরে বিটিআরএফএস ক্লোন দিয়ে সেগুলি নেওয়ার জন্য এক দিনেরও কম সময় লাগবে।
(এতে বলা হয়েছে যে, যে কেউ गुणवत्ता, শক্তিশালী সফ্টওয়্যার লেখার এবং সমর্থন করার জন্য প্রচেষ্টা চালিয়ে যাচ্ছে, এটি বড় কুডোর প্রাপ্য!)
বিটিডব্লিউ : আপনার যে কোনও মূল্যে "সাধারণ" ডিডআপ সমাধান হিসাবে নিয়মিত হার্ডলিঙ্কগুলি ব্যবহার করে ছাড় দেওয়া উচিত।
যদিও হার্ডলিঙ্কগুলি নির্দিষ্ট টার্গেটেড ব্যবহারের ক্ষেত্রে অত্যন্ত কার্যকর হতে পারে (যেমন পৃথক ফাইল বা এমন একটি সরঞ্জাম যা নির্দিষ্ট ফাইলের জন্য কিছু ন্যূনতম আকারের বেশি স্ক্যান করতে পারে - অথবা অনেকগুলি নিখরচায় এবং বাণিজ্যিক ব্যাকআপ / স্ন্যাপশট সমাধানের অংশ হিসাবে) এটি বিপর্যয়কর হতে পারে একটি বৃহত সাধারণ-ব্যবহৃত ফাইল সিস্টেমের "অনুলিপি" এর জন্য। কারণটি হ'ল বেশিরভাগ ব্যবহারকারীদের ফাইল সিস্টেমে কয়েক হাজার ফাইল থাকতে পারে যা বাইনারি অভিন্ন, তবে কার্যত সম্পূর্ণ আলাদা।
উদাহরণস্বরূপ, অনেক প্রোগ্রাম টেম্পলেট এবং / অথবা লুকানো সেটিংস ফাইল তৈরি করে (কখনও কখনও এটি প্রতিটি ফোল্ডারে এটি দেখতে পারে), যা প্রাথমিকভাবে অভিন্ন - এবং বেশিরভাগ ক্ষেত্রেই থাকে, যতক্ষণ না আপনার, ব্যবহারকারীকে সেগুলি হওয়ার দরকার নেই।
একটি নির্দিষ্ট চিত্র হিসাবে: ফটো থাম্বনেইল ক্যাশে ফাইলগুলি, যা ফটোগুলিতে থাকা অগণিত প্রোগ্রামগুলি ফটোগুলি তৈরি করে (এবং সঙ্গত কারণে - বহনযোগ্যতা), উত্পন্ন করতে কয়েক ঘন্টা বা দিন সময় নিতে পারে তবে একটি ফটো অ্যাপ্লিকেশনকে বাতাস ব্যবহার করে। যদি সেই প্রাথমিক ক্যাশে ফাইলগুলি সবই একসাথে হার্ড লিঙ্কযুক্ত থাকে, তবে আপনি পরে কোনও ডিরেক্টরিতে অ্যাপ্লিকেশনটি খুলুন এবং এটি একটি বৃহত্তর ক্যাশে তৈরি করে ... তবে কী অনুমান করুন: এখন প্রতিটি ফোল্ডারে আগের হার্ডলিঙ্কযুক্ত ক্যাশে রয়েছে, এখন ভুল ক্যাশে রয়েছে। সম্ভাব্য, বিপর্যয়কর ফলাফল সহ যা দুর্ঘটনাজনিত ডেটা ধ্বংস হতে পারে। এবং সম্ভাব্যভাবে এমন কোনও উপায়ে ব্যাকআপ সমাধানের বিস্ফোরণ ঘটে যা হার্ডলিঙ্ক-সচেতন নয়।
তদতিরিক্ত, এটি সম্পূর্ণ স্ন্যাপশট নষ্ট করতে পারে। স্ন্যাপশটগুলির পুরো বিন্দুটি যাতে "লাইভ" সংস্করণটি আগের অবস্থায় ফিরে যেতে সক্ষম হয়ে পরিবর্তন চালিয়ে যেতে পারে। সবকিছু যদি এক সাথে সংযুক্ত থাকে তবে ... আপনি একই জিনিসটিতে "ফিরে যান"।
তবে সুসংবাদটি হ'ল বিটিআরএফএস ক্লোন / রিফ্লিংকটি কেটে নেওয়া সেই ক্ষতিটিকে পূর্বাবস্থায় ফিরিয়ে আনতে পারে (আমি মনে করি - যেহেতু স্ক্যান চলাকালীন, এটি হার্ডলিঙ্কযুক্ত ফাইলগুলি অভিন্ন হিসাবে দেখা উচিত ... যদি না এটি হার্ডলিঙ্কগুলি বিবেচনা না করার যুক্তি না থাকে তবে সম্ভবত এটি নির্ভর করে ডিপোপিংয়ের জন্য নির্দিষ্ট ইউটিলিটি)