2011-12-14 11 views
6
  1. आज मैंने देखा कि dead.letter फ़ाइल ईसी 2 उदाहरणों में से एक पर मेरी रूट निर्देशिका में बनाई गई है।
  2. कुछ देखने के बाद मुझे पता चला कि यह कुछ अपूर्ण या समाप्त ईमेल कार्यक्षमता के कारण बनाया गया है।
  3. इसमें 6 जीबीबी का आकार है और यह रूट निर्देशिका में कोई खाली स्थान नहीं छोड़ा गया है।
  4. मैंने अभी भी फ़ाइल हटा दी है मेरी रूट निर्देशिका कोई खाली स्थान उपलब्ध नहीं है।

किसी भी विचार कैसे इस फाइल को और ऊपर जड़ अंतरिक्ष दूर करने के लिए?"dead.letter" फ़ाइल को कैसे निकालें, जिसने रूट निर्देशिका में कोई खाली स्थान नहीं छोड़ा

+0

आपको शायद इसे stackoverflow – Gryphius

उत्तर

7

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

प्रयास करें और, का उपयोग कर उदाहरण के लिए प्रक्रिया की पीआईडी ​​लगता है:

for process in /proc/[0-9]*; do 
    for fd in $process/fd/*; do 
     file=$(readlink -f $fd) 
     if [ "$file" = "/root/dead.letter" ]; then 
      echo $process 
     fi 
    done 
done 

तो यह/उन्हें मार डालते हैं।

+0

के बजाय serverfault.com पर पूछना चाहिए, आपको बहुत दोस्ताना धन्यवाद। – samarth

1

यदि उपर्युक्त स्क्रिप्ट काम नहीं करती है, तो कोई केवल उन प्रक्रियाओं के बारे में सोच सकता है जो रूट या होम निर्देशिका में ऐसी जगहों पर कब्जा कर रहे हैं।

को मार डालो ऐसी प्रक्रियाओं और डिस्क स्थान

मुक्त हो जाएगा आप (ps -ef | grep process_name) उपयोग कर सकते हैं प्रक्रिया आईडी पता लगाने के लिए।

+1

आप 'pgrep process_name' का भी उपयोग कर सकते हैं – fge

2

आप लोग lsof (http://linux.die.net/man/8/lsof) के बारे में जानते हैं?

इस मामले में:

sudo lsof /root/dead.letter 

यह बाहर प्रिंट की जानकारी की फाइल खुली होने की प्रक्रिया के बारे। आपको अभी भी उस प्रक्रिया को मारना है।