df कमांड के 5 जरूरी विकल्प और प्रोडक्शन ट्रबलशूटिंग

परिचय

प्रोडक्शन लिनक्स सर्वर पर काम करते समय ‘No space left on device’ का एरर किसी भी सिस्टम एडमिनिस्ट्रेटर के लिए सबसे आम और गंभीर चुनौतियों में से एक है। इस स्थिति की प्राथमिक जांच के लिए df यूटिलिटी सबसे तेज और भरोसेमंद हथियार मानी जाती है। इस तकनीकी ट्यूटोरियल में हम स्टोरेज साइज को आसानी से समझने योग्य फॉर्मेट में देखना, गैर-जरूरी वर्चुअल फाइलसिस्टम्स को अलग छांटना, और स्टोरेज खाली दिखने पर भी नई फाइल न बन पाने वाली इनोड (Inode) संकट की स्थिति का निवारण करना विस्तार से सीखेंगे। इसके अलावा, प्रोडक्शन परिवेश में अक्सर उलझन पैदा करने वाले df बनाम du के आंकड़ों में अंतर और अनरिलीज़्ड फाइलों के जटिल मुद्दों की भी पड़ताल करेंगे।

1. स्टोरेज स्पेस का प्रारंभिक विश्लेषण और ह्यूमन-रीडेबल फॉर्मेट (df -h)

सिस्टम में माउंट किए गए प्रत्येक एक्टिव पार्टीशन की स्टोरेज स्थिति का त्वरित जायजा लेने के लिए df (disk free) बुनियादी टूल है।
यदि इस कमांड को बिना किसी अतिरिक्त फ्लैग के चलाया जाए, तो यह स्टोरेज आउटपुट को डिफॉल्ट रूप से 1-किलोबाइट ब्लॉक्स (1K-blocks) में दर्शाती है, जिससे वास्तविक उपलब्ध स्पेस का तत्काल मानसिक आकलन करना जटिल हो जाता है।
⚙️ [कार्यकारी ऑप्शंस की सूची]

-h : डेटा वॉल्यूम को इंसानों द्वारा आसानी से पढ़े जाने वाले प्रारूप (K, M, G) में परिवर्तित करता है।
-T : फाइलसिस्टम आर्किटेक्चर के प्रकार (जैसे ext4, xfs, overlay) को स्पष्ट रूप से जोड़ता है।
-i : बाइट कैपेसिटी के बजाय सिस्टम में उपलब्ध और प्रयुक्त इनोड (Inode) तालिकाओं की रिपोर्ट प्रस्तुत करता है।
-t : केवल निर्दिष्ट फाइलसिस्टम कैटेगरी के माउंट पॉइंट्स को ही स्क्रीन पर लाता है।
-x : चुने हुए विशिष्ट फाइलसिस्टम प्रकारों को परिणाम सूची से बाहर रखता है।

मूल df कमांड का आउटपुट

कमांड सिंटैक्स में -h (–human-readable) का समावेश करने से स्क्रीन पर प्रदर्शित आंकड़े समझने में बेहद सरल हो जाते हैं।
नीचे दिए गए आउटपुट से स्पष्ट है कि जटिल 1K ब्लॉक साइज अब स्वतः मेगाबाइट्स (M) और गीगाबाइट्स (G) में व्यवस्थित हो जाते हैं, जिससे फ्री स्पेस का सटीक अंदाजा चंद सेकंडों में लगाया जा सकता है।

df -h विकल्प के साथ स्पष्ट डिस्प्ले

2. वर्चुअल स्टोरेज को नजरअंदाज करना और इच्छित फाइलसिस्टम फिल्टर करना (df -h -x / -t)

df -h -x tmpfs -x devtmpfs -x squashfs कमांड कई बार -x (–exclude-type) का उपयोग करके गैर-महत्वपूर्ण वर्चुअल तथा इन-मेमोरी स्टोरेज लेयर्स को आउटपुट से हटा देती है।
खासकर उबंटू परिवेश में, जहां snap पैकेजेस भारी संख्या में squashfs लूपबैक डिवाइसेस बनाते हैं और रैम-आधारित tmpfs, devtmpfs फाइलसिस्टम्स पूरी स्क्रीन भर देते हैं, वहां वास्तविक डिस्क का आकलन करना कठिन हो जाता है।
यह कंबाइंड कमांड स्क्रीन की अव्यवस्था को दूर कर केवल असली भौतिक ड्राइव्स और क्रिटिकल वॉल्यूम्स को सामने लाती है।

वर्चुअल फाइलसिस्टम हटाकर क्लीन स्टोरेज रिपोर्ट

इसके विपरीत, यदि आप केवल किसी एक विशेष स्टोरेज टाइप पर फोकस करना चाहते हैं, तो df -h -t ext4 कमांड -t (–type) फ्लैग के जरिए ऐसा करती है।
यह अप्रोच सिस्टम में माउंटेड केवल ext4 पार्टीशन्स को छांटकर दिखाती है, जिससे सैकड़ों सेवाओं के बीच भी मुख्य ऑपरेटिंग सिस्टम और डेटा ड्राइव्स की स्थिति तुरंत स्पष्ट हो जाती है।

विशिष्ट ext4 स्टोरेज पार्टीशन की जांच

3. स्टोरेज खाली लेकिन राइट ऑपरेशन विफल: Inode संकट की पहचान (df -i)

इनोड उपयोग के व्यावहारिक परीक्षण और प्रदर्शन के लिए सबसे पहले एक टेस्टिंग फोल्डर तैयार कर उसमें 10 खाली फाइलें जनरेट करते हैं।

परीक्षण डायरेक्टरी और फाइलों का निर्माण

df -i /tmp/df-test कमांड लक्षित पाथ पर मौजूद फाइलसिस्टम के इनोड (Inode) टेबल की वास्तविक स्थिति स्कैन करती है।
यह समझना आवश्यक है कि डिस्क में गीगाबाइट्स स्पेस शेष होने के बावजूद, यदि फाइल मेटाडेटा संभालने वाले इनोड्स पूरी तरह समाप्त (IUse% 100%) हो जाएं, तो ऑपरेटिंग सिस्टम नई फाइल बनाने की अनुमति नहीं देगा।
टर्मिनल आउटपुट के अंतर्गत Inodes (कुल उपलब्ध इंडेक्स), IUsed (वर्तमान में ऑक्यूपाइड), तथा IFree (शेष बचे इनोड्स) का विश्लेषण करके आप फाइल काउंट की लिमिटेशन संबंधी खराबी पकड़ सकते हैं।

df -i द्वारा इनोड उपयोग का विश्लेषण

लैब एनवायरनमेंट को स्वच्छ बनाए रखने के लिए बनाए गए डमी डेटा और टेस्ट डायरेक्टरी को rm -rf /tmp/df-test चलाकर हटा देते हैं।

टेस्ट डायरेक्टरी को सिस्टम से हटाना

4. प्रोडक्शन का कड़वा सच: डिलीटेड फाइल्स और df बनाम du का विसंगतिपूर्ण व्यवहार

मेमोरी में खुली रह गई फाइल्स और अनरिलीज़्ड हैंडल्स को ट्रैक करने के उद्देश्य से सिस्टम में lsof पैकेज की उपलब्धता सुनिश्चित करते हैं और जरूरत पड़ने पर इसे इंस्टॉल करते हैं।

lsof टूल की मौजूदगी जांचना और पैकेज सेटअप

lsof +L1 कमांड ऐसे सभी ओपन फाइल डिस्क्रिप्टर्स की पहचान करती है जिनका डायरेक्टरी लिंक काउंट शून्य हो चुका है (यानी जिन्हें फाइलसिस्टम से हटा दिया गया है), लेकिन प्रोसेस द्वारा अभी भी पकड़ा गया है।
जब कोई एडमिनिस्ट्रेटर rm द्वारा किसी विशाल लॉग फाइल को डिलीट करता है और कोई सक्रिय सर्विस या डेमन उस फाइल को बंद किए बिना जारी रखता है, तब तक कर्नल डिस्क ब्लॉक्स को फ्री नहीं करता। परिणामस्वरूप, du स्पेस खाली दिखाएगा मगर df में कोई बदलाव नहीं दिखेगा।
आउटपुट में लिस्टेड प्रोसेस आईडी (PID) की पहचान करके संबंधित सर्विस को रीलोड या टर्मिनेट करते ही लॉक्ड हैंडल मुक्त हो जाता है और डिस्क स्पेस वास्तविक रूप से रिकवर हो जाता है।

डिलीटेड लेकिन एक्टिव प्रोसेस द्वारा रोकी गई फाइल्स की पहचान

इस गाइड में हमने लिनक्स सर्वर पर स्टोरेज क्षमता और फाइलसिस्टम हेल्थ का आकलन करने वाले df टूल के 5 अनिवार्य पैरामीटर्स और प्रोडक्शन के वास्तविक परिदृश्यों को समझा।
अपनी आवश्यकता के अनुसार इन कमांड्स को सही संदर्भ में लागू करें ताकि अप्रत्याशित स्टोरेज क्रैश से बचते हुए इंफ्रास्ट्रक्चर की उच्च उपलब्धता बनी रहे।