Skip to content
VDS · बैकअप और डिस्क

डिस्क स्पेस: कहाँ जाता है

डिस्क किसने भर दी है यह कैसे पता करें, डिलीट की गई पर खुली फ़ाइल ख़तरनाक क्यों है, क्या साफ़ करना सुरक्षित है, और पैनल में 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 dfdocker image prune, docker builder prune
सिस्टम जर्नलjournalctl --disk-usagejournalctl --vacuum-size=200M
/boot में पुराने कर्नेलdf -h /bootapt autoremove --purge
पैकेज कैशdu -sh /var/cache/aptapt 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% का इंतज़ार नहीं कर सकते: जब डिस्क भर जाती है, तो कुछ सर्विसेज़ तो यह लॉग तक नहीं लिख पातीं कि हुआ क्या।

अगर जगह बिल्कुल नहीं है

  1. तेज़ उपायों से कुछ गीगाबाइट फ्री करें: journalctl --vacuum-size=100M, apt clean, docker builder prune -f।
  2. ऊपर दिए कमांड से असली कारण खोजें — वरना एक हफ़्ते में सब दोहरा जाएगा।
  3. अगर डेटा वाकई बढ़ गया है, तो आपको ऊँचे टियर पर जाकर डिस्क बढ़ानी होगी। डाउनग्रेड उपलब्ध नहीं है: डिस्क छोटी नहीं की जा सकती।