du कमांड के व्यावहारिक उदाहरण और प्रमुख विकल्प

प्रस्तावना

लिनक्स सर्वर का प्रबंधन करते समय अचानक डिस्क स्पेस भर जाना एक आम समस्या है। ऐसे हालात में कौन सी फाइलें या निर्देशिकाएं (डायरेक्टरी) स्टोरेज की खपत कर रही हैं, इसकी त्वरित पहचान करना बेहद आवश्यक हो जाता है। लंबे-चौड़े मैन्युअल पेजों में समय गंवाने के बजाय, इस गाइड में हम लाइव व्यावहारिक उदाहरणों के माध्यम से du कमांड के बुनियादी उपयोग से लेकर उत्पादन वातावरण (प्रोडक्शन) में उपयोगी एडवांस्ड विकल्पों की विस्तृत पड़ताल करेंगे।

1. हैंड्स-ऑन लैब सेटअप और बुनियादी du कमांड का निष्पादन

अभ्यास शुरू करने के लिए, विभिन्न आकारों की टेस्ट फाइलें और डायरेक्टरी संरचना तैयार करते हैं। इसके लिए नीचे दी गई कमांड चलाएं: mkdir -p /tmp/du_demo/logs /tmp/du_demo/backup && truncate -s 10M /tmp/du_demo/backup/data.bin && truncate -s 5M /tmp/du_demo/logs/app.log।

परीक्षण फ़ोल्डर और डमी फ़ाइलें तैयार करना

du (डिस्क यूसेज) कमांड लक्षित डायरेक्टरी और उसके भीतर मौजूद सब-डायरेक्टरी द्वारा उपभोग किए गए वास्तविक स्टोरेज को डिस्क ब्लॉक इकाइयों (डिफ़ॉल्ट रूप से 1024 बाइट्स) में मापती है।
बिना किसी अतिरिक्त पैरामीटर के इसे निष्पादित करने पर, टर्मिनल सभी सब-फोल्डरों के सापेक्ष पथ और उनके द्वारा उपयोग की जा रही स्टोरेज संख्या प्रदर्शित करता है।
⚙️ [महत्वपूर्ण स्विच एवं विकल्प]

-h : स्टोरेज के आंकड़ों को इंसानी समझ के अनुकूल प्रारूप (K, M, G आदि) में बदलता है।
-a : केवल फोल्डरों तक सीमित न रहकर प्रत्येक व्यक्तिगत फाइल का साइज भी सूचीबद्ध करता है।
-s : आंतरिक शाखाओं का विस्तार किए बिना समग्र डायरेक्टरी का कुल योग (समरी) दिखाता है।
-d : स्कैनिंग की गहराई यानी सब-डायरेक्टरी के अधिकतम स्तर (depth) को निर्धारित करता है।
-c : आउटपुट के अंत में पूरे स्कैन का महायोग (total summary line) जोड़ता है।
-b : ब्लॉक आवंटन के बजाय डेटा के वास्तविक बाइट आकार (apparent size) को रिपोर्ट करता है।

सामान्य du कमांड का निष्पादन

कमांड में -h (--human-readable) फ्लैग जोड़ने पर डिस्क की खपत किलोबाइट (K), मेगाबाइट (M), या गीगाबाइट (G) जैसे सहज पैमानों में रूपांतरित हो जाती है।
कच्चे ब्लॉक नंबरों की तुलना में यह फॉर्मेट डायरेक्टरी आकारों का आकलन करना काफी आसान और स्पष्ट बना देता है।

रीडेबल फॉर्मेट में du -h का परिणाम

2. डायरेक्टरी स्कैन की गहराई सीमित करना और कुल योग प्राप्त करना (-d, -s, -c)

मल्टी-लेवल पदानुक्रम में गहराई नियंत्रण का परीक्षण करने के लिए नेस्टेड डायरेक्टरी और एक डमी फ़ाइल बनाएं: mkdir -p /tmp/du_demo/nested/level1/level2 && truncate -s 2M /tmp/du_demo/nested/level1/level2/dummy.bin।

नेस्टेड संरचना और टेस्ट बाइनरी का निर्माण

पैरामीटर -d 1 (--max-depth=1) लागू करने से स्कैनर केवल पहले स्तर के सब-डायरेक्टरी तक ही सीमित रहता है।
यह स्विच स्क्रीन पर गैर-जरूरी आंतरिक सब-फोल्डरों की बाढ़ को रोकता है और रूट स्तर के प्रमुख फोल्डरों का आकार तुरंत देखने में सहायता करता है।

सटीक स्तर 1 के लिए du -h -d 1 निष्पादन

यदि आपको व्यक्तिगत सब-फोल्डरों के ब्योरे में कोई रुचि नहीं है और सिर्फ मुख्य फ़ोल्डर का संयुक्त आकार चाहिए, तो -s (--summarize) फ्लैग का प्रयोग करें।
इसे -h के साथ संयुक्त करने पर पूरे डायरेक्टरी ट्री का कुल वॉल्यूम एक ही संक्षिप्त लाइन में स्क्रीन पर प्रस्तुत हो जाता है।

संक्षिप्त योग के लिए du -sh का उपयोग

आउटपुट में सब-फोल्डरों के व्यक्तिगत आकार के साथ-साथ उनका कुल जोड़ देखने के लिए -c (--total) का इस्तेमाल किया जाता है।
यह विकल्प पूरी सूची के अंत में total नाम से एक अतिरिक्त पंक्ति जोड़ता है, जिससे समग्र उपयोग का हिसाब लगाना सरल हो जाता है।

विभाजित आकार और कुल योग के साथ du -ch -d 1

3. व्यक्तिगत फाइलों का विश्लेषण और विशिष्ट पैटर्न को अनदेखा करना (-a, –exclude)

पैटर्न बहिष्करण (एक्स्क्लूज़न) के अभ्यास हेतु कुछ अस्थाई फाइलें तैयार करते हैं: touch /tmp/du_demo/temp1.tmp /tmp/du_demo/temp2.tmp।

फ़िल्टरिंग के लिए अस्थाई फ़ाइलों का निर्माण

डिफ़ॉल्ट रूप से du फाइलों को छोड़ देता है, लेकिन -a (--all) फ्लैग डायरेक्टरी के साथ-साथ प्रत्येक व्यक्तिगत फाइल की डिस्क खपत को भी उजागर करता है।
जब इसे -h के साथ /tmp/du_demo/logs पर चलाया जाता है, तो उस डायरेक्टरी में मौजूद प्रत्येक फाइल का आकार स्पष्ट रूप से प्रदर्शित हो जाता है।

प्रत्येक फ़ाइल के आकार का विवरण du -ah द्वारा

गणना से अवांछित फाइलों या डायरेक्टरी को बाहर रखने के लिए --exclude विकल्प अत्यंत शक्तिशाली सिद्ध होता है।
उदाहरण के तौर पर, --exclude='*.tmp' जोड़कर हम अस्थाई एक्सटेंशन वाली फाइलों को गणना से बाहर कर सकते हैं, जिससे केवल प्रासंगिक डेटा की वास्तविक खपत दिखाई देती है।

अस्थाई फाइलों को छोड़कर du -h –exclude परिणाम

4. व्यावहारिक सर्वर प्रशासन: आकार के अनुसार सॉर्टिंग और भारी फाइलों की पहचान

स्पेस की खपत करने वाली फाइलों की पहचान करने के लिए कुछ बड़े साइज की डमी फाइलें जोड़ते हैं: truncate -s 50M /tmp/du_demo/backup/big.tar && truncate -s 20M /tmp/du_demo/logs/access.log।

भारी डमी फ़ाइलों का निर्माण

du -h -d 1 /tmp/du_demo के आउटपुट को पाइप ऑपरेटर (|) के माध्यम से sort -hr में भेजने पर, पहले स्तर के सभी फोल्डर उनके आकार के घटते क्रम (अवरोही क्रम) में व्यवस्थित हो जाते हैं।
इससे यह तुरंत स्पष्ट हो जाता है कि कौन सा फ़ोल्डर स्टोरेज का सबसे बड़ा हिस्सा निगल रहा है।

फोल्डरों को आकार के अनुसार सॉर्ट करना

पूरे सिस्टम में स्पेस संकट उत्पन्न करने वाले मुख्य दोषियों को पकड़ने के लिए, du -ah /tmp/du_demo से सभी प्रविष्टियां निकालें, उन्हें sort -hr से घटते क्रम में लगाएं और head -n 5 से शीर्ष 5 सबसे भारी फाइलों/फोल्डरों को फिल्टर करें।
डिस्क स्पेस तेजी से खाली करने के लिए यह पाइपलाइन सबसे प्रभावी तरीकों में से एक है।

शीर्ष 5 विशाल फाइलों की त्वरित पहचान

लैब का काम पूरा हो जाने के बाद, अपने सिस्टम से परीक्षण वातावरण और सभी अस्थायी फाइलों को साफ करने के लिए rm -rf /tmp/du_demo कमांड चलाएं।

अभ्यास डायरेक्टरी की पूर्ण सफाई

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