डिस्क स्थान उपयोग df & du के साथ नहीं जोड़ा जाता है


13

मैं कुछ डिस्क स्पेस को खाली करने की कोशिश कर रहा हूं - अगर मैं करता हूं df -h, तो मेरे पास एक फाइल सिस्टम है जिसे / dev / mapper / vg00-var कहा जाता है, जो कि इसके 4G, 3.8G का उपयोग करता है, 205M बचा है।

यह मेरी / var निर्देशिका से मेल खाती है।

यदि मैं / var में उतरता / करती हूं du -kscxh *, तो कुल 2.1G है

2.1 जी + 200 एम फ्री = 2.3 जी ... तो मेरा सवाल यह है कि शेष 1.7 जी कहां है?


क्या du -shx /varकहता है?
काइल स्मिथ

1
आप उन फ़ाइलों को भी हटा सकते हैं जिनमें खुले फ़ाइल हैंडल हैं। जब तक हैंडल बंद नहीं होता, तब तक ओएस स्पेस को रिलीज़ नहीं करेगा, लेकिन आप उन्हें "डु" के साथ नहीं देखेंगे। आप उन्हें देखने के लिए "lsof / var | grep हटाए गए" (या कुछ इसी तरह) चला सकते हैं। यह वास्तव में एक आश्चर्यजनक खोज नहीं होगी, कहते हैं, / var / log, अगर लॉग को घुमाया जाता है, लेकिन लॉगिंग प्रक्रिया सही तरीके से HUP'ed नहीं है।
cjc

मैं कुछ लॉग फ़ाइलों को हटा रहा था जो पागल हो गए थे, ऐसा लग रहा था जैसे वे घूर्णन नहीं कर रहे थे, लेकिन वैसे भी, मेरे पास एक दोस्त का एक शब्द ईमेल था 'रिबूट' - सोचा कि वह व्यंग्य कर रहा था, लेकिन स्पष्ट रूप से नहीं :) मैं मेरे डिस्क स्थान को फिर से पाया है .... आपदा टल गई (अभी के लिए)।
कोडक्राफ्ट

@Codecraft हाँ, रिबूटिंग निश्चित रूप से किसी भी खुले फ़ाइल हैंडल को साफ़ कर देगा, हालांकि यह एक हथौड़ा के साथ एक अंडे को फोड़ने जैसा है।
cjc

@cjc जब तक मैं यॉल्की अच्छाई पर मिलता है ...! बिना किसी सुझाव के कि मैं अपने अंडे को हाथ में लिए बिना खुली फाइल के हैंडल को कैसे साफ कर सकता हूं?
कोडक्राफ्ट

जवाबों:


20

आपके पास संभवतः कुछ हटाई गई बड़ी लॉग फ़ाइल, डेटाबेस फ़ाइल या कुछ समान आस-पास पड़ी है, जो फ़ाइल को रिलीज़ करने की प्रक्रिया को रोक रही है।

लिनक्स में, एक फ़ाइल विलोपन केवल फाइल को अनलिंक करता है। यह वास्तव में तब डिलीट हो जाता है जब उस फाइल से जुड़ा कोई फाइल हैंडल नहीं होता है। इसलिए, यदि आपके पास 2 जीबी लॉग फ़ाइल है, जिसे आप rm के साथ मैन्युअल रूप से हटाते हैं, डिस्क स्थान को तब तक मुक्त नहीं किया जाएगा जब तक आप syslog डेमॉन को पुनः आरंभ नहीं करते (या HUPइसे सिग्नल भेजते हैं )।

प्रयत्न

lsof -n | grep -i deleted

और देखें कि क्या आपके पास कोई हटाई गई ज़ॉम्बी फाइलें अभी भी तैर रही हैं।


मुझे आपकी आज्ञा नहीं मिली, लेकिन आपने जो कहा वह धमाकेदार प्रतीत हुआ - मैं मैन्युअल रूप से कुछ लॉग-ऑफ-पागल को मार रहा था, और अंत में, एक रिबूट डिस्क स्थान को पुनर्गणना और सही ढंग से दिखाने का कारण बना।
कोडक्राफ्ट

यह हमारे लिए अपाचे लॉग / var / log / apache / निर्देशिका को भरने के साथ काम करता है। इसलिए आपको अपने पूरे सर्वर को पुनः आरंभ नहीं करना पड़ सकता है, और न ही syslog, बस वह सेवा जो आप ऊपर दिए गए कमांड के आउटपुट में पाएंगे।
यवन

बस यह खुद था। हमारे पास tomcat6 catalina.out था, जो कि logrotate द्वारा पकड़ा नहीं गया था, क्या हमने इसे 4Gb और फिक्स्ड क्रोकेट में पहुंचने पर हटा दिया था। सप्ताह बाद में हमने सोचा कि 4Gb वापस क्यों नहीं आया। उस lsofआदेश से पता चलता है कि हमारे पास बहुत सारी टॉमकैट फाइलें लंबित विलोपन हैं। टमकाट को फिर से चालू करना और अचानक हमारे पास टन का वापस होना!
निक

अंत में एक जवाब जो मेरे लिए काम आया। PostgreSQL दुर्घटनाग्रस्त हो गया था और 1TiB डिस्क पर अनलिंक की गई फ़ाइलों के 400GiB (!!!) के लिए खुला कनेक्शन छोड़ दिया था। फिर से शुरू पोस्टग्रेट्स ने इसे ठीक कर दिया।
सूदो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.