लिनक्स वेबसर्वर पर कोई 80% अंतरिक्ष में कौन सी फाइलें ले रहा है, यह कैसे पता चलता है?


15

ड्राइव लगातार भर रहा है। आपने उन सभी अतिरिक्त और रैंडम फ़ाइलों का शिकार किया है जो आप कर सकते हैं। coredump फ़ाइलों के लिए grep'd और यहां तक ​​कि कुछ गैर-आवश्यक बैकअप हटा दिए गए ...

आपकी अगली चाल क्या होगी।

प्रश्न में वास्तविक सर्वर में 10GB वेबसाइट फाइलें होती हैं और OS को 10GB से अधिक नहीं लेना चाहिए, तो आप कैसे ट्रैक करते हैं कि 50GB (वर्चुअल) ड्राइव क्या है?


जवाबों:


9

मुझे लगता है कि इसके लिए ncdu ( http://dev.yorhel.nl/ncdu ) काफी मददगार है।


उत्तम। शानदार इंटरफ़ेस और प्रोग्राम के भीतर से फ़ाइलों में हेरफेर करने की क्षमता। चीयर्स!
गारेथ

23

निश्चित रूप से अधिक विस्तृत तरीके हैं, लेकिन जो मुझे याद है वह है

डु - मोम-गहराई = 1-एच /

अब उस निर्देशिका को लें, जो सबसे अधिक स्थान का उपयोग करती है (du --max-depth=1 -h /yourdir)और तब तक गहराई तक जाती है जब तक कि आपको अपना अपराधी नहीं मिल जाता।
यदि आप चाहते हैं कि आपका आउटपुट आकार से क्रमबद्ध हो और मानव-पठनीय प्रारूप की परवाह न करें, तो आप भी कर सकते हैंdu --max-depth=1 /your_dir | sort -n


हाँ। मैं बहुत कुछ एक ही बात करता हूँ "du -S | Sort -n -r | less"। मैं वास्तव में एक प्रोग्राम देखना पसंद करूँगा जो htop और cron'd की तरह mlocate दिखता हो, लेकिन जब आपके द्वारा आपके सिस्टम की फ़ाइलों के बारे में सटीक और समसामयिक जानकारी दी जाती है।
गैरेथ

1
वेबसर्वर से शुरू करने के बजाय http_root से शुरू करने का प्रयास करें। अगर वहां कोई सफलता नहीं मिली तो कोई '/' के लिए जा सकता है। '/' पर डूइंग डाइरेक्टरी को बहुत समय लगेगा।
सौरभ बड़जात्या

4

मैं सूक्ति कार्यक्रम बाओबाब का उपयोग करता हूं। आप इसे अपने डेस्कटॉप पर चला सकते हैं और एसएसएच के माध्यम से सर्वर से कनेक्ट कर सकते हैं। यह डिस्क स्पेस उपयोग के ग्राफिकल मैप को पढ़ने में आसान दिखाता है। यह "डिस्क उपयोग विश्लेषक" के रूप में सूक्ति के तहत स्थापित है


3

दे दो GT5 एक कोशिश।


मैं यह दूसरा हूं, यह ट्रैकिंग के लिए बहुत अच्छा है जहां अंतरिक्ष जा रहा है क्योंकि यह दिखाता है कि यह अलग है।
जोश

लवली। यह सही उत्तर होना चाहिए। क्या सुपर मिल गया। धन्यवाद।
PKHunter

2

df -k दिखाता है कि कौन सी fs समस्या हैं। फिर इसके लिए शीर्ष स्तर dir पर जाएं और du -xk चलाएं सॉर्ट-एन | टेल -25 यह शीर्ष 25 dir को दिखाएगा, सूरज 9 या उससे पहले के लिए सॉर्ट किया गया, x को d से बदलें।


हाँ, जैसा कि मैंने अभी @Marie फिशर के उत्तर में बताया है। मानव के लिए -h के बजाय -k (ब्लॉक आकार) का उपयोग क्यों किया जाता है?
गैरेथ

-k का उपयोग किया जाता है ताकि सभी आकार केबी में बताए जाएं। यह सॉर्टिंग के लिए उपयोगी है और सॉर्ट करते समय 20mb से पहले 10kb लगाता है।
सौरभ बड़जात्या

1

ध्यान दें कि फ़ाइलों को अभी भी लिखे जाने के दौरान हटाया जा सकता है, इसलिए वे डिस्कस्पेस का उपयोग करते हैं जबकि उनकी निर्माण प्रक्रिया चल रही है, लेकिन फ़ाइल नाम नहीं है।

यह सामान्य उपकरणों के साथ अपरिहार्य है - आप lsof का उपयोग करके जांच कर सकते हैं कि किन प्रक्रियाओं में खुली फाइलें हैं।


मैं /usr/sbin/lsof | grep deletedइसे पाने के लिए उपयोग करता हूं ।
केविन एम।

0

यदि आप सिस्टम पर सॉफ्टवेयर चला सकते हैं, तो xdiskusage आपको ग्राफिक रूप से दिखाएगा कि कौन सी निर्देशिकाएं / फाइलें आपके स्थान को खा रही हैं। अत्यंत उपयोगी।

मेरा मानना ​​है कि केडीई में भी कुछ ऐसा ही है।

यदि यह केवल-पाठ है और आप अतिरिक्त सॉफ़्टवेयर स्थापित नहीं कर सकते हैं, तो duसंभवतः इसका रचनात्मक उपयोग आपको वहाँ भी मिलेगा।


0
  1. cd वेब सर्वर होम डायरेक्टरी (अपाचे होम डाइरेक्टरी)
  2. कमांड "डु-ए | हेड -30 | सॉर्ट-एनआर" चलाएं
  3. यह आपको 30 सबसे बड़ी डिस्क लेने वाली फाइल / निर्देशिका देगा
  4. आप उन्हें पा सकते हैं और हटा सकते हैं (यदि उपयोगी नहीं है)

यह तब तक काम नहीं करेगा जब तक आप headऔर के क्रम को बदल नहीं देते sort। साथ ही आपको स्वरूपण सुविधाओं का उपयोग करना चाहिए।
कैस्परल्ड

0

आप फ़ाइलों या फ़ोल्डरों को बहुत अधिक स्थान लेने के लिए निम्न कमांड का उपयोग कर सकते हैं।

मौजूदा फ़ोल्डर में सबसे बड़ी शीर्ष 20 निर्देशिकाओं को प्रदर्शित करने के लिए, निम्न एक-लाइनर का उपयोग करें:

du -ah . | sort -rh | head -20

या:

du -a . | sort -rn | head -20

वर्तमान निर्देशिका में शीर्ष 20 सबसे बड़ी फ़ाइलों के लिए (पुनरावर्ती):

ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20

या मानव पठनीय आकारों के साथ:

ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20

OSX / BSD पर ठीक से काम करने के लिए दूसरा आदेश (के रूप में sortनहीं है -h), तो आप स्थापित करने की आवश्यकता sortसे coreutils। फिर बिन फ़ोल्डर को अपने में जोड़ें PATH

आप इन आदेशों को उपनाम के रूप में परिभाषित कर सकते हैं (उदाहरण के लिए अपनी आरसी फाइलों में जोड़ें जैसे .bash_profile):

alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'

फिर उन फ़ोल्डरों को चलाएं bigया big-filesजिनके अंदर आपको लगता है कि जैसे (जैसे /home) हैं।


0

यहाँ कुछ मैंने अपने डेटाबेस सर्वर पर कुछ बदमाश प्रक्रियाओं को ट्रैक करने के लिए एक साथ किया है: rabbitfinder

#!/bin/sh
tree -s -f > /tmp/out1 && sleep 5 && tree -s -f > /tmp/out2; diff /tmp/out1 /tmp/out2 | egrep "\|--" | awk -F[ '{print $2}' | awk -F] '{print $2 }' | sort | uniq | xargs fuser -f | xargs ps -lFp

यह थोड़े kludgey है और बहुत मजबूत नहीं है, लेकिन यह इस प्रकार काम करता है:

  1. वर्तमान निर्देशिका की एक पुनरावर्ती ट्री सूची उत्पन्न करें
  2. 5 सेकंड प्रतीक्षा करें
  3. एक और सूची तैयार करें
  4. दो आउटपुट की तुलना करें
  5. फ़ाइलों को आकार बदल दिया है और fuser
  6. ps -lFp फाइलों को दिखाएगा कि उनके पास क्या प्रक्रिया है

    user@poseidon:~$ tree -s -f > /tmp/out1 && sleep 5 && tree -s -f > /tmp/out2; diff /tmp/out1 /tmp/out2 | egrep "\|--" | awk -F[ '{print $2}' | awk -F] '{print $2 }' | sort | uniq | xargs fuser -f | xargs ps -lFp
    ./tmp/output:       
    F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN    RSS PSR STIME TTY          TIME CMD
    0 R 1000     14310 14275 23  80   0 -  1072 -        748   1 22:19 pts/2    00:00:06 dd if /dev/zero of ./output bs 1024 count 10000000
    
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.