डिस्क स्पेस: कहाँ जाता है
डिस्क किसने भर दी है यह कैसे पता करें, डिलीट की गई पर खुली फ़ाइल ख़तरनाक क्यों है, क्या साफ़ करना सुरक्षित है, और पैनल में usage रिंग ग़लत क्यों दिखा सकती है।
23 अगस्त 2026 को अपडेट किया गया
जगह खत्म होना एक आउटेज है जो किसी भी चीज़ की तरह दिख सकता है: डेटाबेस लिख नहीं पाता, साइट एरर लौटाती है, कंटेनर रीस्टार्ट होते हैं। VDS डिस्क एंट्री टियर पर 40 GB से लेकर टॉप टियर पर 250 GB तक होती है, और यह लगभग हमेशा उन्हीं चीज़ों से भर जाती है।
पहले कमांड
df -h
df -i
sudo du -x -h -d1 / | sort -h | tail -15
df -i को न छोड़ें: हो सकता है आपके पास स्पेस हो लेकिन inodes खत्म हो जाएँ — तब खाली गीगाबाइट होने पर भी “disk full” मिलता है। आमतौर पर इसका कारण लाखों छोटी कैश फ़ाइलें होती हैं।
फिर सबसे बड़ी डायरेक्टरी में गहराई तक जाएँ:
sudo du -x -h -d1 /var | sort -h | tail
sudo du -x -h -d1 /var/lib | sort -h | tail
-x फ़्लैग गिनती को एक ही फ़ाइलसिस्टम तक सीमित रखता है और माउंट की गई डायरेक्टरियों में नहीं भटकता।
आम कारण
| क्या | कैसे जाँचें | क्या करें |
|---|---|---|
| कंटेनर लॉग | du -sh /var/lib/docker/containers/*/*-json.log | साइज़ सीमित करें, देखें लॉग |
| इमेज और बिल्ड कैश | docker system df | docker image prune, docker builder prune |
| सिस्टम जर्नल | journalctl --disk-usage | journalctl --vacuum-size=200M |
/boot में पुराने कर्नेल | df -h /boot | apt autoremove --purge |
| पैकेज कैश | du -sh /var/cache/apt | apt clean |
| यहीं छोड़ी गई कॉपियाँ | du -sh /backup | इन्हें ऑफसाइट ले जाएँ, देखें दूसरी लोकेशन |
| यूज़र अपलोड | du -sh /var/www/uploads | बाहर स्टोरेज या बड़ी डिस्क |
डिलीट की गई फ़ाइल जो अब भी जगह घेरती है
एक क्लासिक पहेली: du 5 GB दिखाता है, df 30 GB इस्तेमाल हुआ दिखाता है। इसका मतलब है कि फ़ाइल डिलीट हो गई, लेकिन कोई प्रोसेस उसे अब भी खुला रखे हुए है, और रीस्टार्ट तक जगह फ्री नहीं होगी।
sudo lsof +L1 | head -20
आउटपुट में प्रोसेस और साइज़ दिखेंगे। इसे ठीक करने के लिए दोषी प्रोसेस को रीस्टार्ट करें:
sudo systemctl restart <service>
docker compose restart <service>
इस्तेमाल में चल रही लॉग फ़ाइल पर
rmसे कभी जगह फ्री न करें। सही तरीका है उसे ट्रंकेट करना:sudo truncate -s 0 /var/log/big.log। उसे डिलीट करने से जगह भी घिरी रहेगी और लॉग भी हाथ से चला जाएगा।
पैनल में यूसेज रिंग
“Overview” टैब पर एक डिस्क यूसेज रिंग होती है। यह गेस्ट एजेंट qemu-guest-agent के ज़रिए कैलकुलेट होती है। अगर एजेंट हटा दिया गया है या चल नहीं रहा, तो डेटा अपडेट नहीं होगा — पैनल इंस्टॉल कमांड दिखाएगा। मशीन के अंदर जाँचने के लिए:
systemctl status qemu-guest-agent
एजेंट की रीडिंग और df -h का मेल होना चाहिए। फ़र्क आमतौर पर इसका मतलब होता है कि कुछ जगह किसी अलग माउंट किए गए पार्टीशन में घिरी है — देखें पार्टीशन और फ़ाइलसिस्टम।
बचाव
क्लीनअप और अलर्ट के साथ एक शेड्यूल्ड टास्क सेट करें:
#!/bin/bash
USED=$(df --output=pcent / | tail -1 | tr -dc '0-9')
if [ "$USED" -gt 85 ]; then
journalctl --vacuum-size=200M
apt clean
docker image prune -f
echo "Disk is ${USED}% full" | mail -s "VDS: low disk space" you@example.com
fi
85% की थ्रेशोल्ड आपको रिएक्ट करने की जगह देती है। 100% का इंतज़ार नहीं कर सकते: जब डिस्क भर जाती है, तो कुछ सर्विसेज़ तो यह लॉग तक नहीं लिख पातीं कि हुआ क्या।
अगर जगह बिल्कुल नहीं है
- तेज़ उपायों से कुछ गीगाबाइट फ्री करें:
journalctl --vacuum-size=100M,apt clean,docker builder prune -f। - ऊपर दिए कमांड से असली कारण खोजें — वरना एक हफ़्ते में सब दोहरा जाएगा।
- अगर डेटा वाकई बढ़ गया है, तो आपको ऊँचे टियर पर जाकर डिस्क बढ़ानी होगी। डाउनग्रेड उपलब्ध नहीं है: डिस्क छोटी नहीं की जा सकती।