রুট ব্যবহারকারীর জন্য ফাইল সিস্টেমের মুক্ত স্থান প্রদর্শন করুন


12

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

উত্তর:


6

আমি নিশ্চিত যে এখানে কোনও সরঞ্জাম অন্তর্নির্মিত আছে, তবে ধরে নিচ্ছি যে আপনি ডিফল্ট 5% সংরক্ষণে রেখে গেছেন তবে এটি আপনাকে বলবে:

df / | grep dev | cut -f 3,6 -d\  | awk '{print ($1*.05)+$2}'

dfএর মধ্যে ডেভযুক্ত grepরেখার জন্য মূলটি (শিরোনামটি সরাতে), cutআকার এবং উপলভ্য ক্ষেত্রগুলির জন্য, তারপরে উপলব্ধ awkস্ক্রিপ্টটি যুক্ত হয়ে ডিস্ক আকারের 5% গণনা করতে একটি স্ক্রিপ্ট ব্যবহার করুন ।

আপনি প্রকৃত রিজার্ভেশনটি এখান থেকে টানতে পারেন tune2fs -l <device>এবং এটিকে কোনও স্ক্রিপ্টে উপরের সাথে একত্রিত করতে পারেন।


2
রাইট, তাই নিম্নলিখিত কমান্ড আমাদের বলতে হবে privilegied ব্যবহারকারীদের জন্য সংরক্ষিত কিভাবে পার্টিশন স্থান অনেক: tune2fs -l /dev/DEVICE | egrep "Block count|Reserved block count"। উদাহরণস্বরূপ আমার "মাল্টিমিডিয়া বাফার" পার্টিশনের জন্য: Block count: 2621440এবং Reserved block count: 128449: উপলব্ধ ব্লকগুলির 4.9% (বিভাজন রোধে রক্ষণশীল সেটিং)।
tuk0z

cutকমান্ডটি ব্যবহার করার দরকার নেই : আপনি awkসরাসরি ক্ষেত্রগুলি বেছে নিতে পারেন । আসলে cutকমান্ডটি আমার প্রত্যাশার মতো কার্যকর হয়নি। যাইহোক, আমি আরও একটি উত্তর দিয়েছি যা আরও সুনির্দিষ্ট উত্তর দেওয়া উচিত।
জার্নো

1
সম্পাদন tune2fs -m <percentage> <device-name>পরিবর্তন ডিস্ক স্পেস শুধুমাত্র root ব্যবহারের জন্য জন্য সংরক্ষিত করা হয়।
luka5z

1
উপরের দ্বারা অনুপ্রাণিত হয়ে আমি sudo tune2fs -l $(df | grep -E '/$' | cut -d\ -f 1) | egrep "Reserved block count|Block size" | paste -sd\ | awk '{print ($4 * $7 / ( 1024 * 1024 ) ), "MB"}'
এমবিতে

এটি কোনও বহনযোগ্য উত্তর নয়। আপনার প্রয়োজনীয় উত্তরের জন্য নীচে চেক করুন (স্পোয়েলার: tune2fs /dev/sda1বা আরও ভালstat -f -c '%a blocks free and %f blocks free for root (%S bytes per block)' /
trs

17

Tune2fs ( / sbin / tune2fs পাওয়া যায় ) কমান্ডটি ব্যবহার করে , আপনি সহজেই সংরক্ষিত স্থান নির্ধারণ করতে পারবেন : (এবং আরও!)

tune2fs -l /dev/sda1

আমি রেফারেন্সের জন্য আমার সিস্টেমের তথ্য সরবরাহ করব, আমি এই প্রশ্নের গুরুত্বপূর্ণ নয় এমন বহিরাগত লাইনগুলি সরিয়ে ফেলব:

শিরোনাম ... এবং ভলিউমের নাম, আমি আমার সমস্ত ড্রাইভগুলি লেবেল করি, যদি প্রয়োজন হয় তবে তাদের সনাক্তকরণ সহজ করে তোলে।

tune2fs 1.42.4 (12-Jun-2012)
Filesystem volume name:   xenon
Last mounted on:          /
...

সিস্টেমটি চলাকালীন সত্যই এটি "পরিষ্কার" বলতে চান। সৎ!

Filesystem state:         clean

এখান থেকেই ডেটা স্টোরেজ সক্ষমতার তথ্য শুরু হয়:

এখানে আপনি দেখতে পাচ্ছেন যে আমার কাছে মোট 121,179,648 টি ব্লক রয়েছে ... 4K (4096) এর ব্লকের আকারের সাথে এটি কিছু বড় সংখ্যায় (462-ইশ জিবি) গুন করে। (ব্লকের আকার নীচে উল্লেখ করা হয়েছে)

Block count:              121179648

এবং সংরক্ষিত ব্লকগুলি ... উপরের সংখ্যাটি এবং নীচের সংখ্যাটি দেখে .. আপনি তুলনামূলকভাবে দ্রুত নির্ধারণ করতে সক্ষম হবেন আমার 1% সংরক্ষিত আছে। এই ক্ষেত্রে (4.62-ইশ গিগাবাইট)

Reserved block count:     1211796

বর্তমানে কতটা মুক্ত স্থান পাওয়া যায়? এখানেই!

Free blocks:              104090586
...

এবং সমস্ত গুরুত্বপূর্ণ ব্লকের আকার। গুণনের জন্য কার্যকর।

Block size:               4096
...

এই লাইনগুলি বলছে যে এই ক্ষেত্রে ব্লকগুলি ... ব্যবহারকারীর 0, মূলের জন্য সংরক্ষিত

Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
...

এখানে আরও প্রচুর তথ্য পাওয়া যায়, তবে এটি আপনাকে কতটা পাওয়া যায় এবং কী কী আরও মূলের জন্য সংরক্ষিত রয়েছে তা দ্রুত নির্ধারণ করার ক্ষমতা দেয়। সরল গণিত

আশাকরি এটা সাহায্য করবে. মনে রাখবেন ... ম্যান পেজগুলি আপনার বন্ধু।


2

এটি "/ পাথ" সম্পর্কিত পার্টিশনে বাইটে ফাঁকা স্থান প্রদর্শন করে

printf '%s' $(($(stat -f --format='%f*%S' /path)))

এটি চালানোর জন্য আপনাকে সুপারভাইজার হতে হবে না।

বিটিডব্লিউ আমি বুঝতে পারছি না এর মধ্যে পার্থক্য কী

% s ব্লক আকার (দ্রুত স্থানান্তরের জন্য)

% S মৌলিক ব্লকের আকার (ব্লক গণনার জন্য)

ব্যবহারে stat


শীতল - এই অ্যাকাউন্টটি মূলের জন্য সংরক্ষিত স্থানের জন্য নয়?
পল

@ পল হ্যাঁ, এটি অন্তর্ভুক্ত রয়েছে
জর্নো

আপনার আউটপুট কার্যকরভাবে একটি যোগফল - যাতে আপনি bcবাইট গণনা পেতে আউটপুটটি পাইপ করতে পারেন, বা --format='%f*%S/1024/1024/1024' | bcআপনি কয়টি বিভাগ পছন্দ করেছেন তার উপর নির্ভর করে কিলোবাইট / মেগাবাইট / গিগাবাইট পেতে ব্যবহার করতে পারেন।
পল

@ পল ওয়েল, আমি এটিকে একটি পণ্য বলব। বাইনারি উপসর্গ kibibytes, mebibytes এবং gibibytes যথাক্রমে বলা হয়। পার্শ্ববর্তী গাণিতিক সম্প্রসারণ $(( ... )) গণনা করে তবে এটি কেবলমাত্র ভাগফলের পূর্ণসংখ্যার অংশের ফলাফল করে (যদি আপনি বিভাগ যুক্ত করেন)। বা আপনার অর্থ কী আপনার শেল পাটিগণিতের বিস্তৃতি সমর্থন করে না?
জার্নো

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