যদিও মাউন্ট করা বিভিন্ন স্ন্যাপশটগুলি বিভিন্ন কাজ করে, মনে হয় এটি বেশিরভাগ ক্ষেত্রে মারাত্মকভাবে ধীর হতে পারে।
আলাদা আলাদা স্ন্যাপশটগুলির জন্য কি বিটিআরএফস নির্দিষ্ট কার্যকারিতা রয়েছে? (আমি ডক্সে কোনওটি খুঁজে পেতে অক্ষম ছিলাম)
যদিও মাউন্ট করা বিভিন্ন স্ন্যাপশটগুলি বিভিন্ন কাজ করে, মনে হয় এটি বেশিরভাগ ক্ষেত্রে মারাত্মকভাবে ধীর হতে পারে।
আলাদা আলাদা স্ন্যাপশটগুলির জন্য কি বিটিআরএফস নির্দিষ্ট কার্যকারিতা রয়েছে? (আমি ডক্সে কোনওটি খুঁজে পেতে অক্ষম ছিলাম)
উত্তর:
মনে হচ্ছে আপনি বিটিআরএফ প্রেরণ / গ্রহণের সন্ধান করছেন যা লিনাক্স ৩.6 এ প্রদর্শিত হবে। send
কমান্ড দুই স্ন্যাপশট মধ্যে পার্থক্য একটি লগ ফাইল তৈরি করে, এবং receive
কমান্ড একটি ফাইল থেকে পরিবর্তন প্রয়োগ করা হয়। নোট করুন যে প্রেরণ / গ্রহণ একটি কাস্টম ফাইল ফর্ম্যাট ব্যবহার করে, সুতরাং ফাইলটি ঠিক দেখতে, বলার মতো, আলাদা বা তার মতো দেখায় না।
আমি ডেবিয়ান স্থিতিশীল যা চালাচ্ছি না btrfs send
, তাই আমি ব্যবহার করে একটি সমাধানের দিকে চেয়েছিলাম btrfs subvolume find-new
।
আপনার যদি স্ন্যাপশট 1 এবং স্ন্যাপশট 2 থাকে এবং আপনি পরবর্তীগুলির মধ্যে কী পরিবর্তন হয়েছে তা জানতে চান স্ন্যাপশট 2, যেহেতু স্ন্যাপশট 1 তৈরি করা হয়েছিল আপনি নীচের স্ক্রিপ্টটি ব্যবহার করতে পারেন যা সরবরাহ করে
btrfs-diff oldsnapshot/ newsnapshot/
যা নিউজেনাপশটে / ওল্ডস্ন্যাপশট / থেকে পরিবর্তিত সমস্ত ফাইলের তালিকা প্রদর্শন করবে।
#!/bin/bash
usage() { echo $@ >2; echo "Usage: $0 <older-snapshot> <newer-snapshot>" >2; exit 1; }
[ $# -eq 2 ] || usage "Incorrect invocation";
SNAPSHOT_OLD=$1;
SNAPSHOT_NEW=$2;
[ -d $SNAPSHOT_OLD ] || usage "$SNAPSHOT_OLD does not exist";
[ -d $SNAPSHOT_NEW ] || usage "$SNAPSHOT_NEW does not exist";
OLD_TRANSID=`btrfs subvolume find-new "$SNAPSHOT_OLD" 9999999`
OLD_TRANSID=${OLD_TRANSID#transid marker was }
[ -n "$OLD_TRANSID" -a "$OLD_TRANSID" -gt 0 ] || usage "Failed to find generation for $SNAPSHOT_NEW"
btrfs subvolume find-new "$SNAPSHOT_NEW" $OLD_TRANSID | sed '$d' | cut -f17- -d' ' | sort | uniq
ব্যাখ্যা করার জন্য: স্ন্যাপশটের একটি নির্দিষ্ট 'প্রজন্মের' পরেbtrfs subvolume find-new
ফাইলগুলি পরিবর্তিত হয়েছে finds এটি বর্তমান প্রজন্মের সংখ্যাও জানায়।
যেমন একটি সাবভলিউম মামলার দৈনিক স্ন্যাপশট নিন:
mkdir test && cd test
btrfs subvolume create live
date >live/foo1
date >live/bar1
btrfs subvolume snapshot live/ snap1
date >live/foo2 # new file
date >>live/bar1 # modify file
rm live/foo1 # delete file
btrfs subvolume snapshot live/ snap2
date >live/foo3 # new file
mv live/bar{1,2} # rename file
rm live/foo2 # delete file
স্ন্যাপ 1 এবং স্ন্যাপ 2 এর মধ্যে কী পরিবর্তন হয়েছে?
$ btrfs-diff snap1/ snap2/
bar1
foo2
সুতরাং আমরা নতুন ফাইলটি দেখতে পাচ্ছি, পরিবর্তিত ফাইলটি দেখতে পাব, তবে মোছার খবরটি পাওয়া যায় না । এর কারণ হ'ল কমান্ডটি ফাইলগুলিতে উপস্থিত রয়েছে যা এখন নেই not
স্ন্যাপ 2 এবং লাইভ সাবভলিউমের মধ্যে কী পরিবর্তন হয়েছিল?
$ btrfs-diff snap2/ live/
foo3
নাম পরিবর্তিত ফাইল রিপোর্ট করা হয় না । এর ডেটা পরিবর্তন হয়নি।
এখন যদি আমরা নাম পরিবর্তিত ফাইলে ডেটা যুক্ত করি
date >>live/bar2
btrfs-diff snap2/ live/
bar2
foo3
ঠিক আছে, বুদ্ধিমান। তবে আসুন একটি নতুন ফাইল তৈরি করা যাক
date >live/lala
btrfs-diff snap2/ live/
bar2
foo3
অঁ্যা! লালা কোথায়? । আপনি যদি অন্য কোনও ফাইল যুক্ত করেন তবে lala
উপস্থিত হয়। সুতরাং এই আচরণটি কিছুটা বিজোড়। উইকি সম্ভবত যা বলে:
সন্ধান-নতুন পদ্ধতির কিছু মারাত্মক সীমাবদ্ধতা রয়েছে এবং এটি প্রেরণ / গ্রহণের মতো কোনও কিছুর জন্য সত্যই ব্যবহারযোগ্য নয়।
যাইহোক, পূর্ববর্তী অবস্থার তুলনায় আপনি যখন কোনও লাইভ সাবভলিউম তুলনা করেন, তখন অদ্ভুততা আসে যখন আপনি কেবল (কেবল পঠনযোগ্য) স্ন্যাপশটের তুলনা করেন না। সুতরাং আপনি মুছে ফেলা ফাইলগুলি সনাক্ত করতে না চাইলে এটি এখনও কার্যকর হতে পারে।
এটি স্ন্যাপশট সুবিধার্থে সরঞ্জাম দ্বারা সমর্থিত snapper
।
sudo snapper -c config diff 445..446
অবশ্যই এটি snapper
আপনার স্ন্যাপশটের জন্য ব্যবহার করা প্রয়োজন ।
এই স্ন্যাপশট আইডিগুলি ব্যবহার করে পাওয়া যাবে snapper list -a
। দুর্ভাগ্যক্রমে স্নাপার লেখার সময় কোনও একক কনফিগারেশনের জন্য তালিকা স্ন্যাপশটগুলিকে সমর্থন করে না, যদিও এই সংখ্যাগুলি সাবভলিউমের নাম থেকে পাওয়া যায়।
A
ধারণ করে থাকে তবে এর স্ন্যাপশটেa
লিখুনb
এবং পরে এটিকে আবার পরিবর্তন করুনa
, ফাইলটি আসলেই কোনও পরিবর্তন হয়নি।