একটি ব্যাকআপ [বন্ধ] এর আগে লিনাক্সে সরানো বা নাম পরিবর্তন করা ফাইলগুলি সনাক্ত করার সরঞ্জাম বা স্ক্রিপ্ট


15

মূলত আমি সন্ধান করছি যে এমন কোনও সরঞ্জাম বা স্ক্রিপ্ট রয়েছে যা সরিয়ে নেওয়া বা নাম পরিবর্তন করা ফাইলগুলি সনাক্ত করতে পারে যাতে আমি নাম পরিবর্তন করা / সরানো ফাইলগুলির একটি তালিকা পেতে পারি এবং ব্যান্ডউইদথ সংরক্ষণের জন্য নেটওয়ার্কের অন্য প্রান্তে একই ক্রিয়াকলাপটি প্রয়োগ করতে পারি।

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

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

এখানে ফাইলগুলির "সাধারণ" বৈশিষ্ট্যগুলির একটি তালিকা রয়েছে:

  1. বড় অপরিবর্তিত ফাইল files
  2. এগুলির নাম পরিবর্তন করা বা চারপাশে স্থানান্তরিত করা যেতে পারে

[সম্পাদনা:] এগুলি ভাল উত্তর, এবং শেষ পর্যন্ত আমি কী শেষ করছি তা উত্তরগুলির দিকে তাকিয়ে ছিল এবং এটি মোকাবেলা করার জন্য কিছু কোড লিখব writing মূলত আমি এখন যা ভাবছি / কাজ করছি তা হ'ল:

  1. "প্রাথমিক" স্ক্যানের জন্য এইডের মতো কিছু ব্যবহার করা এবং আমাকে ফাইলগুলিতে চেকসাম রাখতে সক্ষম করে কারণ এগুলি কখনই পরিবর্তিত হয় না, সুতরাং এটি দুর্নীতি সনাক্তকরণে সহায়তা করবে।
  2. একটি ইনোটিফায় ডেমন তৈরি করা যা এই ফাইলগুলি / ডিরেক্টরি পর্যবেক্ষণ করে এবং নামগুলির সাথে সম্পর্কিত যে কোনও পরিবর্তন রেকর্ড করে এবং ফাইলগুলিকে লগ ফাইলের দিকে নিয়ে যায়।
  3. কিছু প্রান্তের ঘটনা রয়েছে যেখানে ইনোটিফাই ফাইল সিস্টেমের সাথে কিছু ঘটেছিল তা রেকর্ড করতে ব্যর্থ হতে পারে, সুতরাং শেষ ব্যাকআপের চেয়ে পরিবর্তিত সময়ের পরে থাকা ফাইলগুলির জন্য ফাইল সিস্টেম অনুসন্ধান করার জন্য অনুসন্ধান ব্যবহারের একটি চূড়ান্ত পদক্ষেপ রয়েছে ।

এর বিভিন্ন সুবিধা রয়েছে:

  1. এইডস থেকে চেকসামস / ইত্যাদি পরীক্ষা করে দেখুন / নিশ্চিত করতে পারেন যে কোনও মিডিয়া দুর্নীতিগ্রস্থ না হয়েছে
  2. ইনোটাইফাই রিসোর্সের ব্যবহার কম রাখে এবং ফাইল সিস্টেমকে বারবার স্ক্যান করার দরকার পড়ে না
  3. আরএসসিএনসি প্যাচ করার দরকার নেই; যদি আমার জিনিসগুলি প্যাচ করতে হয় তবে আমি বোঝা কম রাখার জন্য জিনিসগুলি প্যাচ করা এড়াতে পছন্দ করব, (আপডেটের সময় প্রতিবারের জন্য পুনরায় প্যাচ করার দরকার নেই)।
  4. আমি ইউনিসন আগে ব্যবহার করেছি এবং এটি সত্যিই দুর্দান্ত, তবে আমি শপথ করে বলতে পারি যে ইউনিজনন ফাইল সিস্টেমে অনুলিপিগুলি রাখে এবং এর "সংরক্ষণাগার" ফাইলগুলি আরও বড় হতে পারে?

উত্তর:


7

ইউনিয়ন http://www.cis.upenn.edu/~bcpierce/unison/ দাবি করে যে চাল এবং পুনরায় নাম সনাক্ত করতে সক্ষম হ।

সরানো / পুনর্নবীকরণ সনাক্তকরণ যুক্ত করতে আরএসসিএনকে কয়েকটি প্যাচ রয়েছে:

http://gitweb.samba.org/?p=rsync-patches.git;a=blob;f=detect-renamed-lax.diff;h=1ff593c8f97a97e8970d43ff5a62dfad5abddd75;hb=master

http://gitweb.samba.org/?p=rsync-patches.git;a=blob;f=detect-renamed.diff;h=c3e6e846eab437e56e25e2c334e292996ee84345;hb=master

এই সমস্যাটি ট্র্যাক করে বাগজিলা এন্ট্রি: https://bugzilla.samba.org/show_bug.cgi?id=2294


6
এই প্যাচগুলি কেন সংহত হয় না? তারা কেবল পতাকা যুক্ত করে, এগুলি অনুপ্রবেশকারী নয়। আর একটি আকর্ষণীয় প্যাচ হ'ল আরএসসিএসমস , যা আরএসসিএন রানের মধ্যে চেকসামকে প্রায় রাখতে পারে।
তোবু

5

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

শুধু একটি ভাবনা.


2
হ্যাঁ আমি এটিকে বিবেচনা করেছি, ফাইলগুলি যদি ছোট এবং পাঠ্য ভিত্তিক হয় তবে এটি সম্ভবত ভাল কাজ করবে তবে সেগুলি বাইনারি এবং মোট আকারটি একটি টেরাবাইটের কাছে পৌঁছাচ্ছে।
ফারাউন

@ ফারাউন আপনার ব্লব স্টোরেজ ছাড়াই গিট সূচি দরকার need এই কোডটি গিটের বাইরে ছিঁড়ে এনে লিবিগিট 2 এ যুক্ত করুন।
টুবু

প্রাসঙ্গিক কোডটি পঠন-ক্যাশে। এ রিফ্রেশ_ইনডেক্স দিয়ে শুরু হয়।
তোবু

5

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

আমি চাই ফোল্ডারগুলিকে রিয়ারিং করার সময় বৈশিষ্ট্যটি আমার মুভি সংগ্রহের ব্যাকআপটি দ্বিতীয় হার্ড ডিস্কে সিঙ্কে রাখুক।

এখন আমি এই সাধারণ সি স্ক্রিপ্টটি পেয়েছি http://sourceforge.net/projects/movesync/

ঠিকঠাক কাজ মনে হচ্ছে। এটি চালান এবং তারপরে সাধারণত একত্রিত হয়ে সিঙ্ক করুন।


4

আপনি এইডের মতো একটি হোস্ট ভিত্তিক আইডিএস ব্যবহার করতে সক্ষম হবেন এবং এর আউটপুটটি ব্যবহার করে একটি মোড়ক স্ক্রিপ্ট লিখতে পারবেন। চেকসামগুলি বিবেচনা করে আপনাকে আরও জটিল যুক্তি লিখতে হবে।

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


এটাই আমি করার কথা ভাবছিলাম, এর মধ্যে একটি নিয়ে সেগুলি প্রসারিত করব। এছাড়াও হ্যাঁ আমি এটিকে ইন্টারনেটে স্থানান্তর করছি এবং ব্যান্ডউইথ বেশ সীমিত।
ফারাউন

3

আপনি একত্রিত করার চেষ্টা করতে পারেন ; বিশেষত

-এক্সফারবাইপি স্থানীয় অনুলিপিগুলি ব্যবহার করে ট্রান্সফারগুলি অনুকূলিতকরণ করুন (ডিফল্ট সত্য)

ডকস হিসাবে বিকল্প হিসাবে উল্লিখিত

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

দেখে মনে হচ্ছে এটি আপনি যা চান তা করতে পারে।


প্রকৃতপক্ষে অন্ধকারে, theক্যবদ্ধ মন্তব্যটিতে আমি খুব তাড়াহুড়ো করে থাকতে পারি। একত্রীকরণ যদি পরিবর্তন হয় তবে প্রকৃত ফাইল সামগ্রীর সাথে একটি হার্ডলিঙ্ক প্রতিস্থাপনকে সমর্থন করে? যদি তা হয় তবে আমি আর এসএনএপশট + একত্রীকরণের সাথে এমন কিছু জাদু করতে সক্ষম হতে পারি যা এটি মোকাবেলা করার জন্য এক টন নতুন কোড / লগ / ইত্যাদি না লিখে আমার প্রয়োজনীয়তা মেটাবে।
ফারাউন

3

Syrep আপনার যা প্রয়োজন তা করে। এটি ফাইলের গাছে বার্তা হজম করে রাখে আপ টু ডেট; চারপাশে হজম রাখা এটি আরএসসিএন-এর চেয়ে বেশি দক্ষ করে তোলে। এটি স্নিকার্নেটের জন্য তৈরি করা হয়েছিল যাতে আপনি এমন একটি মোড়ক যুক্ত করতে পারেন যা একবারে আপডেট / মেকপ্যাচ / মার্জ করে।


2

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

এই ফাইলগুলির তালিকার সাথে আপনি কেবল সেই ফাইলগুলি সিঙ্ক করতে rsync ব্যবহার করতে পারেন। আরএসআইএনসি-র একটি ফাইল তালিকায় পড়ার বিকল্প রয়েছে। এখানে একটি উদাহরণ যা এই উদাহরণটি দেখায়:

$ cd tmp
$ echo test > test
$ ls -la
total 16
drwxr-xr-x 2 root root 4096 Aug 18 11:34 .
drwxr-x--- 5 root root 4096 Aug 18 11:34 ..
-rw-r--r-- 1 root root    5 Aug 18 11:34 test
$ mkdir tmp2
$ find . -mmin 1
$ date
Wed Aug 18 11:35:10 EDT 2010
$ find . -mmin 1
$ find . -mmin 2
.
./test
./tmp2
$ mv test tmp2
$ find . -mmin 1
.
./tmp2

দয়া করে নোট করুন যে আমি প্রতিটি findকমান্ড চালানোর মধ্যে প্রায় 1 মিনিট অপেক্ষা করেছি । এটি থেকে এটি দেখায় যে প্রাথমিকভাবে ফাইলটি তৈরি করার সময় এটি তালিকাভুক্ত হয় find। যদি আমি ফাইলটি অন্য ডিরেক্টরিতে স্থানান্তরিত করি এবং findকমান্ডটি পুনরায় চালিত করি তবে এটি কেবলমাত্র ডিরেক্টরিটি ফাইলটিতে স্থানান্তরিত করে, কেবল ফাইলটিই প্রদর্শন করে না। আপনি যে ফাইলগুলি চান তা কেবলমাত্র তালিকার জন্য আপনি কম্যান্ডের সমন্বয় findএবং rsyncকমান্ড ব্যবহার করতে পারেন এটি সম্ভবত আপনার লক্ষ্য অর্জন করতে পারে।

আশা করি এটা কাজে লাগবে.


2

আপনার ওয়ার্কফ্লো দেওয়া, আমি অবাক হয়েছি যদি ফাইল স্তরে কাজ করা (যেমন এখন পর্যন্ত অন্যরা কী প্রস্তাব করেছে) সবচেয়ে ভাল সমাধান। আপনি কাজ করতে পারেন ...

ফাইল সিস্টেম পর্যায়ে

ব্যাকআপগুলির মধ্যে ক্রিয়াকলাপটি ফাইল সিস্টেম রাখতে হবে বলে ধারণা। ফাইল সিস্টেমের ব্যাকআপ তৈরির পরিবর্তে ফাইল সিস্টেম জার্নালের ব্যাকআপ নিন (এবং আপনি যদি ব্যবহারের জন্য প্রস্তুত ব্যাকআপ চান তবে ব্যাকআপ মেশিনে পরিবর্তনগুলি পুনরায় খেলুন)। একটি ফাইল সিস্টেম জার্নাল স্বাভাবিকভাবে কয়েক বাইটে চাল এবং মোছা প্রকাশ করে।

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

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

ভলিউম স্তরে

ধারণাটি হ'ল ভলিউম ম্যানেজারটি ব্যাকআপগুলির মধ্যে ক্রিয়াকলাপ রাখে। ফাইলসিস্টেমটির ব্যাকআপ দেওয়ার পরিবর্তে ভলিউম ম্যানেজারের সাথে একটি স্ন্যাপশট নিন এবং আগের স্ন্যাপশট থেকে পৃথক হিসাবে প্রকাশিত স্ন্যাপশটটি ব্যাক আপ করুন

আপনার কাজগুলি যদি ফাইলগুলি তৈরি করে, নাম পরিবর্তন করে এবং সেগুলি সরিয়ে দেয় তবে এটি ভালভাবে কাজ করবে। অনুলিপি এবং সম্পাদনাগুলির মতো জিনিসগুলি সনাক্ত করা বা ফাইল মুছে ফেলার পরে তার সৃষ্টিকে অপ্টিমাইজ করা অনেক কঠিন।


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

তবে সেই লগফএফস একটি আকর্ষণীয় প্রকল্পের মতো দেখায় না, কেবল উদ্বেগ হ'ল তারা ২০০৮/০৯ সালে দেব বন্ধ করে দিয়েছে। এটি নিয়ে খেলতে হবে এবং দেখুন এটি কৌশলটি করবে কিনা।
ফারাউন

0

একত্রীকরণ এটির জন্য ভাল তবে তবুও স্থানীয়ভাবে ফাইলগুলি অনুলিপি করা দরকার এবং যদি ফাইলের বিষয়বস্তু কিছুটা সামান্য পরিবর্তিত হয় তবে এটি একটি চাল / নামও সনাক্ত করতে পারে না।

আমি ইনড নম্বর (কেবলমাত্র * * নিক্স) ব্যবহার করে নাম পরিবর্তন করা / সরানো ফাইল এবং ডিরেক্টরিগুলি সনাক্ত করতে এবং সিঙ্ক্রোনাইজড মেশিনে এই পরিবর্তনগুলি পুনরায় খেলতে একটি সাধারণ পাইথন স্ক্রিপ্ট তৈরি করেছি। আপনি এটি নিজে বা ইউনিসন বা আরএসসিএনসি'র জন্য একটি "নতুন নামকরণ প্রিপ্রোসেসর" হিসাবে ব্যবহার করতে পারেন। এটি এখানে পাওয়া যাবে

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