रूट यूजर के लिए उपलब्ध फाइलसिस्टम का मुफ्त स्थान प्रदर्शित करें


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
ठीक है, इसलिए निम्न कमांड हमें बताएगा कि विशेषाधिकार प्राप्त उपयोगकर्ताओं के लिए विभाजन स्थान कितना आरक्षित है 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>केवल रूट उपयोग के लिए आरक्षित डिस्क स्थान बदलने के लिए निष्पादित करें।
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"}'
mp3foley

यह एक पोर्टेबल जवाब नहीं है। आपको जिस उत्तर की आवश्यकता है, उसके लिए नीचे देखें (बिगाड़ने वाले: tune2fs /dev/sda1या इससे भी बेहतरstat -f -c '%a blocks free and %f blocks free for root (%S bytes per block)' /
1

17

कमांड ट्यून 2 एफएफ़ ( एसएनबी / ट्यून 2 एफएफ में पाया गया) का उपयोग करके , आप आसानी से आरक्षित स्थान निर्धारित कर सकते हैं : (और!)

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-ish GB) से गुणा करता है। (ब्लॉक का आकार नीचे दिया गया है)

Block count:              121179648

और आरक्षित ब्लॉक ... ऊपर की संख्या, और नीचे की संख्या को देखकर .. आप अपेक्षाकृत जल्दी पता लगाने में सक्षम होना चाहिए कि मेरे पास 1% आरक्षित है। इस मामले में (4.62-ish GB)

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


कूल - क्या यह खाता रूट के लिए आरक्षित स्थान के लिए है?
पॉल

@Paul हाँ, यह शामिल है
jarno

आपका आउटपुट प्रभावी रूप से एक राशि है - इसलिए आप bcबाइट काउंट प्राप्त करने के लिए आउटपुट को पाइप कर सकते हैं , या --format='%f*%S/1024/1024/1024' | bcकिलोबाइट्स / मेगाबाइट्स / गीगाबाइट्स प्राप्त करने के लिए उपयोग कर सकते हैं कि आप कितने डिवीजनों को चुनते हैं।
पॉल

@Paul खैर, मैं इसे एक उत्पाद कहूँगा। द्विआधारी उपसर्गों kibibytes, mebibytes और gibibytes क्रमश: कहा जाता है। आसपास के अंकगणितीय विस्तार $(( ... )) गणना करता है, लेकिन यह भागफल के पूर्णांक भाग (यदि आप विभाजन को जोड़ते हैं) का परिणाम है। या क्या आपका मतलब है कि आपका शेल अंकगणितीय विस्तार का समर्थन नहीं करता है?
जारो

@Paul लेकिन, यदि आप उपयोग करते हैं bc, तो इसके बजाय, आप मनमानी परिशुद्धता के साथ भागफल प्राप्त कर सकते हैं, यदि आपको इसकी आवश्यकता है।
जारो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.