কিভাবে একটি ZFS ডেটাসেট মাউন্ট পয়েন্ট রুট কিনা তা নির্ধারণ করতে?


5

আমি (পাইথন) স্ক্রিপ্টে মূল্যায়নের জন্য একটি নির্বিচারে পথ একটি ZFS মাউন্টপয়েন্টের রুট কিনা তা নির্ধারণ করতে চাই (তাই কমান্ডের রিটার্ন কোডটি আউটপুট পার্সিংয়ে পছন্দ করা হয়)। Btrfs সমতুল্য হয় btrfs subvolume show [path] যা 0 অথবা 1 প্রদান করে সেটি হল একটি btrfs সাব-ভলিউমের root।

আফাক আমি ব্যবহার করতাম zfs list এবং এটি পার্স, কিন্তু হয়তো আরো মার্জিত উপায় আছে।

আমি লিনাক্স 4.8.0 দিয়ে উবুন্টু 16.10 এ ZFS 0.6.5.8 ব্যবহার করছি।

উত্তর:


3

বর্তমানে মাউন্ট করা ফাইল সিস্টেম শুধুমাত্র

আপনি নিজেকে সীমাবদ্ধ করতে ইচ্ছুক বর্তমানে মাউন্ট করা ZFS ফাইল সিস্টেম, আপনি পার্স করতে পারেন /proc/mounts এবং কোন বিশেষ ZFS জ্ঞান প্রয়োজন হয় না (যদি না আপনি বিশেষত নিজেকে ZFS ফাইল সিস্টেমগুলিতে সীমাবদ্ধ করতে চান)।

এটি অ-লিনাক্স সিস্টেমে কাজ করে নাও হতে পারে।

/ proc / mounts মূলত / etc / mtab, কিন্তু কার্নেল দ্বারা পরিচালিত হয়। এতে ফাইল সিস্টেম ব্যাকিং ডিভাইস, মাউন্ট পাথ, ফাইল সিস্টেমের ধরন এবং ফাইল সিস্টেম ফ্ল্যাগগুলির একটি তালিকা রয়েছে।

উদাহরণস্বরূপ, সমস্ত মাউন্টেড ZFS ফাইল সিস্টেমের মাউন্ট পয়েন্টগুলি তালিকাভুক্ত করার জন্য, আপনি কিছু করতে পারেন

$ awk '$3 == "zfs" { print $2 }' < /proc/mounts

একটি প্রদত্ত ডিরেক্টরি একটি মাউন্টেড ZFS ফাইল সিস্টেমের মাউন্ট পয়েন্টের সাথে সংশ্লিষ্ট কিনা তা পরীক্ষা করার জন্য,

$ awk '$3 == "zfs" && $2 == "/some/particular/absolute/path" { print "yes" }' < /proc/mounts

সমস্ত ফাইল সিস্টেমের জন্য (শুধুমাত্র ZFS নয়) অনুমতি দেওয়ার জন্য, কেবল সরান $3 == "zfs" চেক করুন।

মাউন্ট অথবা আনুমানিক ZFS ফাইল সিস্টেম

যদি আপনি বর্তমানে আমদানি করা পুলগুলিতে আনমাউন্ট করা ফাইল সিস্টেমগুলি অন্তর্ভুক্ত করতে চান তবে আপনাকে ব্যবহার করতে হবে zfs get বর্তমানে আমদানি করা পুলগুলির মধ্যে সমস্ত ZFS মাউন্টপয়েন্টগুলির তালিকা পেতে:

$ sudo zfs list -pH -o mountpoint | grep -q '^/some/particular/absolute/path$' && echo yes

মুদ্রণ করা হবে yes একটি মাউন্ট পয়েন্ট সঙ্গে একটি ফাইল সিস্টেম /some/particular/absolute/path বর্তমানে আমদানি করা একটি পুলের উপর বিদ্যমান, ফাইল ফাইলটি বর্তমানে মাউন্ট করা আছে কিনা তা না।

রপ্তানি পুল উপর ফাইল সিস্টেম

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

নোট সমাপ্তি

আপনি কি চান তা একটি ইউটিলিটি আছে কিনা তা সর্বদা বিবেচনা করুন। উদাহরণ স্বরূপ, df, একটি পার্শ্ব প্রতিক্রিয়া হিসাবে, বর্তমানে মাউন্ট করা ফাইল সিস্টেমগুলির তালিকা এবং তাদের ব্যাকিং ডিভাইসগুলির তালিকা প্রিন্ট করে এবং যেকোনো কার্নেল যাদু (শুধুমাত্র জনসাধারণের ব্যবহারের উদ্দেশ্যে ইন্টারফেস ব্যবহার করে) অংশগ্রহণ করতে প্রত্যাশিত হতে পারে। strace df 2>&1 | less আপনার প্রয়োজনীয় তথ্য খোঁজার জন্য কেউ কীভাবে যেতে পারে তা দেখতে সেই ক্ষেত্রে একটি ভাল শুরু।


2

তুমি ব্যবহার করতে পার zfs get নির্বাচিত বৈশিষ্ট্য প্রদর্শন, মত mountpoint

# zfs get -pH -o value mountpoint rpool/swap

ব্যাখ্যা:

  • -p বিভাজক হিসাবে ট্যাব সঙ্গে পার্সেবল আউটপুট উত্পাদন করে
  • -H শিরোনাম omits
  • -o name,property,value,source চার কলাম, বা তাদের কোন বৈচিত্র প্রদর্শন করে

আপনি মাউন্ট পয়েন্ট হিসাবে সেট করা হয় যে পথ পাবেন (বেশিরভাগ ক্ষেত্রে এই হবে / প্লাস ডেটাসেট নাম (1), তবে এটি ভিন্ন হতে পারে (2)), - কোন মাউন্ট পয়েন্ট সেট করা হয় না (3), অথবা উত্তরাধিকার (4)। আপনি তারপর ব্যবহার করতে পারেন grep পর্থক্য দেখানো:

# zfs get -pH -o value mountpoint rpool
/rpool
# zfs get -pH -o value mountpoint rpool/export/home
/export/home
# zfs get -pH -o value mountpoint rpool/swap
-
# zfs get -pH -o value mountpoint rpool/ROOT
legacy
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.