मुझे कैसे पता चलेगा कि मेरे / विभाजन पर सभी जगह का उपयोग क्या है?


9

मैं अमेज़न के EC2 सर्वर पर एक बड़े उदाहरण पर हूं। मैं df कमांड चलाता हूं और प्राप्त करता हूं:

root@db:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             9.9G  9.1G  284M  98% /
tmpfs                 3.8G     0  3.8G   0% /lib/init/rw
varrun                3.8G  116K  3.8G   1% /var/run
varlock               3.8G     0  3.8G   0% /var/lock
udev                  3.8G   80K  3.8G   1% /dev
tmpfs                 3.8G     0  3.8G   0% /dev/shm
/dev/sdb              414G  957M  392G   1% /mnt
/dev/sdf               50G   12G   35G  26% /byp
/dev/sdk               99G   31G   63G  33% /backups

मैं तब डु कमांड चलाता हूं और प्राप्त करता हूं:

root@db:/# du -s -h /*
31G     /backups
5.5M    /bin
136K    /boot
12G     /byp
80K     /dev
5.8M    /etc
12K     /home
70M     /lib
11M     /lib32
0       /lib64
16K     /lost+found
759M    /mnt
4.0K    /opt
du: cannot access `/proc/6917/task/6917/fd/4': No such file or directory
du: cannot access `/proc/6917/fd/4': No such file or directory
0       /proc
31M     /root
7.7M    /sbin
4.0K    /selinux
4.0K    /srv
0       /sys
11M     /tmp
1.1G    /usr
114M    /var

यदि आप ध्यान दें, जब आप गैर-माउंटेड निर्देशिकाओं के डु कमांड आउटपुट पर सभी आकारों को जोड़ते हैं, तो आपको 9.1G के करीब कहीं भी नहीं मिलेगा जैसा कि डीएफ कमांड में देखा गया है।

क्या इसका मतलब है कि मेरे पास एक खराब डिस्क है? यदि हां, तो मैं इसे कैसे ठीक कर सकता हूं?

जवाबों:


20

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

# lsof | grep "deleted"

यदि आपको बहुत सारी पंक्तियाँ दिखाई देती हैं जो "(हटाई गई)" के साथ समाप्त होती हैं, तो आप उस प्रक्रिया का पता लगा सकते हैं जिसमें आईडी उनके पास है और इसे फिर से शुरू करें। एक बार ऐसा होने पर, आपका डिस्क स्थान वापस आ जाना चाहिए।

यदि यह इसे ठीक नहीं करता है, तो मैं एक fsck की सलाह दूंगा।


1
बहुत बढ़िया! वह यह था। मेरे पास एक पोस्टग्रैस्क लॉग था जो अभी भी लॉग इन हो रहा था।
sh9

यदि आप फ़ाइल को हटाने के बजाय डेमॉन को पुनरारंभ किए बिना कुछ स्थान खाली करना चाहते हैं, तो इसके बजाय "इको> फ़ाइल" का उपयोग करें। यह फ़ाइल को छोटा कर देगा, लेकिन क्योंकि हैंडल अभी भी खुला है, यह एक विरल फ़ाइल बन जाएगा। इसका मतलब है कि यह अभी भी एक ही आकार का होगा, लेकिन बहुत कम डिस्क स्थान लेगा।
डेविड पशले 19

lsof +L1कभी कभी कि ग्रेप की तुलना में बेहतर काम कर सकते हैं ...
derobert

5

वहाँ कारणों का एक गुच्छा हैं डु नहीं बराबर डीएफ। इस प्रश्न के उत्तर देखें ।

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

दोनों के बीच मुख्य अंतर यह है कि df सिर्फ सुपरब्लॉक की जांच करता है और उस पर भरोसा करता है, जहां du सभी फाइलों को स्कैन करता है जिसे वह देखने में सक्षम है, और उन्हें जोड़ता है। सुपरब्लॉक की जानकारी के लिए आईबीएम का यह लिंक देखें ।


4

हमेशा du के साथ -x विकल्प का उपयोग करें जब आप इस तरह की समस्याओं का पीछा कर रहे हैं। यह फाइलसिस्टम को पार करने से डु रहता है।


इससे कोई फर्क नहीं पड़ता, क्योंकि ओपी ने स्पष्ट रूप से / * के लिए कहा, इसलिए अन्य विभाजनों के लिए कहा। अगर कुछ के तहत मुहिम शुरू की जाती, तो यह मदद करता, "/ mnt / backups"
डेविड पैस्ले
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.