`সিপি -al` স্নাপশট যার হার্ড লিঙ্কগুলি সম্পাদনা করার সময় কোনও নতুন ফাইলে পরিচালিত হয়


11

আমি নিয়মিত একটি বিশাল ফোল্ডারের স্ন্যাপশট নেওয়ার চেষ্টা করছি।

আমি এখানে পড়েছি: http://www.mikerubel.org/computers/rsync_snapshots/#Incremental
যা cp -alহার্ড লিঙ্কগুলি অনুলিপি করে কেবল একটি ফোল্ডারের স্ন্যাপশট নেয়।

এটি সব দুর্দান্ত, তবে সমস্যাটি হ'ল এই স্ন্যাপশটে যদি আমি কোনও ফাইল পরিবর্তন করি তবে এটি সমস্ত স্ন্যাপশটে পরিবর্তিত হয়। পরিবর্তে আমি যা চাই তা হ'ল সিস্টেমটি পরিবর্তিত একটি নতুন ফাইল তৈরি করে তার পরিবর্তে এর সাথে লিঙ্ক করে। এইভাবে প্রতিটি স্ন্যাপশট প্রথম ফাইলের সম্পাদনায় অকার্যকর হবে না।

আমি কীভাবে এটি অর্জন করতে পারি?

PS আমি চেষ্টা করেছি rsync -a --delete --link-dest=../backup.1 source_directory/ backup.0/, তবে এতে একই সমস্যা রয়েছে।

উত্তর:


7

হার্ডলিঙ্কগুলি এভাবেই কাজ করে। তবে, এর চারপাশে উপায় রয়েছে:

কয়েকটি বিকল্প মাথায় আসে:

  • অনুলিপি-র মত ফাইলগুলির জন্য সমর্থন সহ একটি ফাইল সিস্টেম ব্যবহার করুন btrfs। অবশ্যই, আপনি কি বিটিআরএফ ব্যবহার করছেন, আপনি কেবল এর নেটিভ স্ন্যাপশট ব্যবহার করবেন ... আপনার ফাইল সিস্টেম যদি এটি সমর্থন করে, আপনি ব্যবহার করতে পারেন cp --reflink=always। দুর্ভাগ্যক্রমে, ext4 এটি সমর্থন করে না।
  • শুধুমাত্র আপনার স্ন্যাপশট জুড়ে হার্ডলিঙ্কগুলি ভাগ করুন, আসলটি দিয়ে নয়। এটি হ'ল, আপনি যখন কোনও ফাইলের প্রদত্ত সংস্করণটি প্রথমবার দেখেন, স্নাপশটে এটি অনুলিপি করুন। তবে পরের বার, আগের স্ন্যাপশটের একটিতে এটি লিঙ্ক করুন। (এক দশক আগে আমি কী প্রোগ্রামটি ব্যবহার করেছিলাম তা নিশ্চিত নয় — তবে অনুসন্ধানে ডিরিভিশ, ওব্নম, স্টোরব্যাকআপ এবং আরএসএন্যাপশট পরিণত হয়)
  • আপনার ফাইলগুলি কীভাবে পরিবর্তিত হচ্ছে তার উপর নির্ভর করে আপনি গ্যারান্টি দিতে সক্ষম হতে পারেন যে কোনও রাইটিং টেম্প / নাম পরিবর্তন করার জন্য সেগুলি পরিবর্তন করা হয়, তবে এটি হার্ডলিঙ্কটি ভেঙে দেবে — সুতরাং স্ন্যাপশটের সংস্করণটি আদিতে থাকবে। এটি কম নিরাপদ, যদিও বাগগুলি আপনার স্ন্যাপশটকে দূষিত করতে পারে।
  • সম্পূর্ণ ফাইল সিস্টেমের LVM স্ন্যাপশট নিন।

অবশ্যই, অন্য বিকল্প রয়েছে - সঠিক ব্যাকআপ সিস্টেম ব্যবহার করুন। এগুলির বেশিরভাগই কেবলমাত্র পরিবর্তিত ফাইলগুলিকে ব্যাকআপ করতে পারে।


একটি বিশাল ফোল্ডার ব্যাক আপ করার উপায় হিসাবে আপনি কী প্রস্তাব দিচ্ছেন?
হারমান ইনজালডসন

আমি ভাবছিলাম যে এমন একটি সার্ভারে আরএসসিএনসি ব্যবহার করে যা স্ন্যাপশটের জন্য নিয়মিত সিপি-ল করার ক্রোনজব আছে .. আরও বেশি অনুলিপিগুলির জন্য আরএসসিএন-ইনগ্রেডের পাশাপাশি। শব্দটা কেমন ছিল?
হারমান ইনজালডসন

@ হারমানইংজালডসন ভাল, আপনি কীভাবে আপনার ব্যাকআপ করবেন তা নির্ভর করে depends ব্যক্তিগতভাবে, আমি এটি কেবলমাত্র আমার বকুলা সেটআপে যুক্ত করব — তবে আমি আপনাকে সুপারিশ করব না যতক্ষণ না আপনার কাছে একগুচ্ছ মেশিন ব্যাকআপ রাখার জন্য, বা বকুলাকে ইতিমধ্যে না জানা। সুতরাং, আমার ধারণা আমি আপনাকে প্রথমে আরএসএন্যাপশটটি ব্যবহার করার পরামর্শ দিই।
ডারোবার্ট

rsnapshotভালো
developerbmw

4

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

কিছু অ্যাপ্লিকেশনগুলি প্রতিস্থাপন কৌশলটি ব্যবহার করার জন্য কনফিগার করা যেতে পারে। কিছু অ্যাপ্লিকেশন ডিফল্টরূপে প্রতিস্থাপন কৌশলটি ব্যবহার করে, তবে হার্ড লিঙ্কগুলি যাতে না ভাঙতে পারে সে জন্য তারা একাধিক হার্ড লিঙ্ক সহ কোনও ফাইল দেখলে ওভাররাইট কৌশলটি ব্যবহার করে। ওভাররাইটিংয়ের পরিবর্তে আপনার অ্যাপ্লিকেশনটি কনফিগার করতে পারলে আপনার বর্তমান স্ন্যাপশট কৌশলটি কাজ করবে।

একাধিক হার্ড লিঙ্কযুক্ত ফাইলগুলিতে প্রতিস্থাপন কৌশলটি নিয়মিতভাবে ব্যবহার করতে ফ্ল-গাভী প্রোগ্রামগুলিকে পরিবর্তন করে।

অন্যথা, আপনি যে সঞ্চালিত কপি-অন-লেখ বা ডিডুপ্লিকেশান একটি ফাইল সিস্টেম আপনার ফাইল সংরক্ষণ করতে পারে, অথবা একটি স্ন্যাপশট বৈশিষ্ট্য আছে, এবং হার্ড সংযোগগুলি সম্পর্কে চিন্তা করবেন: Btrfs বা ZFS । আপনার বিভাজন স্কিমের উপর নির্ভর করে, LVM স্ন্যাপশট ব্যবহার করা একটি বিকল্প হতে পারে।

আমার সুপারিশটি হ'ল সঠিক স্ন্যাপশট সরঞ্জামটি ব্যবহার করা। নির্ভরযোগ্য ব্যাকআপ করা আশ্চর্যজনকভাবে কঠিন। আপনি সম্ভবত চান rsnapshot


2

নীচে একটি রুবি স্ক্রিপ্ট যা আমি লিখেছিলাম যে "সিপি -াল" এবং আরএসসিএনকে একটি দুর্দান্ত স্ক্রিপ্টে আবৃত করে যা ম্যানুয়ালি বা ক্রোনের মাধ্যমে চালানো যেতে পারে। গন্তব্য স্থানীয় বা দূরবর্তী হতে পারে (ssh এর মাধ্যমে):

ঘেটো টাইমচাইন

আপনার প্রশ্নের প্রাথমিক উত্তর, যেমন পূর্ববর্তী মন্তব্যে উল্লিখিত হয়েছে, উত্সটি কঠোর লিঙ্কগুলি থেকে দূরে রাখা দরকার। উদাহরণস্বরূপ, আপনার হোম ডিরেক্টরিটির একটি দৈনিক ব্যাকআপ অনুমান করুন:

উৎস:

  • / হোম / flakrat

গন্তব্য:

  • / ডেটা / ব্যাকআপ / দৈনন্দিন
    • / সোমবার
    • / মঙ্গলবার
    • /বুধবার
    • / বৃহস্পতিবার
    • ...

গতকালের ব্যাকআপের বিরুদ্ধে "সিপি -াল" চালিয়ে শক্ত লিঙ্কগুলি তৈরি করা হয়েছে। আপনি এটি চালানোর সময় মঙ্গলবার সকালে বলুন:

cd /data/backup/daily

rm -rf tuesday

cp -al monday tuesday

rsync -a --delete /home/flakrat /data/backup/daily/tuesday/


0

rdiff- ব্যাকআপ আপনি যা চান তা মনে হচ্ছে, এটি পরীক্ষা করে দেখুন।

আরএসআইএনসি ব্যবহার করে আপনাকে প্রথমে একটি হার্ড লিঙ্ক ব্যবহার না করে একটি পূর্ণ ব্যাকআপ তৈরি করতে হবে। পরবর্তী ব্যাকআপটি আগের ব্যাকআপ এবং এর সাথে শক্ত লিঙ্কটি নির্দেশ করতে পারে। এইভাবে আপনার ব্যাকআপগুলি আপনার কার্যকরী ফাইলগুলির সাথে (যা আপনি সংশোধন করছেন) এর সাথে কঠোরভাবে লিঙ্কযুক্ত নয়। উদাহরণ। আমার আগের ব্যাকআপটি যদি ফোল্ডার ব্যাকআপ ০.১ হয় তবে আমার ব্যাকআপ স্ক্রিপ্টটি প্রথমে ফোল্ডারগুলিকে একের পর এক নতুন নামকরণের মাধ্যমে বাড়িয়ে তুলবে তাই ব্যাকআপ ০.০ ব্যাকআপ ০.২ হয়ে যায়। তারপরে স্ক্রিপ্টটি একটি নতুন ফাঁকা ফোল্ডার তৈরি করে যার নাম ব্যাকআপ ০.০১। এটি তখন নতুন ফোল্ডারে নতুন ব্যাকআপটিকে নতুন ফোল্ডারে আর ব্যাকআপ ০.২-এর হার্ড লিঙ্কে আরএসসিঙ্ক করবে যাতে ব্যাকআপে কেবল নতুন ফাইলই কোনও স্থান গ্রহণ করতে পারে। আরএসআইএনসি কমান্ডটি এরকম কিছু দেখতে পাবে: rsync -rlt sourcepath ব্যাকআপথ / ব্যাকআপ.01 - লিঙ্ক-ডেস্ট = ব্যাকআপথ / ব্যাকআপ.02

সুতরাং আপনি দেখতে পাচ্ছেন, সমস্ত শক্ত সংযোগ ব্যাকআপ পথে চলছে on আপনার উত্স পথে ফাইলগুলি সংশোধন করার সময় আপনাকে লেখার অনুলিপি সম্পর্কে চিন্তা করতে হবে না।

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