2008-09-02 20 views
9

In this question में केवल सीआईआई के साथ डिस्क उपयोग ग्राफ/चार्ट जेनरेट करें, किसी ने लिनक्स में डिस्क उपयोग प्रदर्शित करने के तरीकों के लिए कहा। मैं क्ली-पथ के नीचे एक कदम आगे ले जाना चाहता हूं ... एक शेल स्क्रिप्ट के बारे में जो पिछले प्रश्न के उचित उत्तर की तरह कुछ से आउटपुट लेता है और इसमें से एक ग्राफ/चार्ट उत्पन्न करता है (एक पीएनजी में आउटपुट फ़ाइल या कुछ)? इसमें कुछ समय बहुत ज्यादा कोड एक नियमित रूप से प्रश्न में लिए पूछने के लिए हो सकता है लेकिन मेरा अनुमान है कोई पहले से ही कहीं आसपास बिछाने एक oneliner है कि ...लिनक्स

उत्तर

6

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

लेखन मुनिन प्लगइन्स बहुत आसान है (यह परियोजना लक्ष्यों में से एक था)। उन्हें लगभग किसी भी चीज (शैल स्क्रिप्ट, पर्ल/पायथन/रूबी/आदि, सी, कुछ भी निष्पादित किया जा सकता है और आउटपुट उत्पन्न किया जा सकता है) में लिखा जा सकता है। प्लगइन आउटपुट प्रारूप मूल रूप से disc1usage.value 1234 है। और प्लगइन डीबग करना बहुत आसान है (एमआरटीजी की तुलना में)

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

मैं वर्णन करता हूं कि यह कैसे सेटअप है, लेकिन मुनिन साइट जितना संभव हो उतना बेहतर कर सकती है!

एक उदाहरण स्थापना here

कुछ विकल्प Nagios और नागफनी हैं नहीं है। आप rrdtool का उपयोग कर कुछ भी लिख सकते हैं। मुनिन, एमआरटीजी और कैक्टि मूल रूप से इस ग्राफिंग टूल के आधार पर सभी दूर-सुथरा-उपयोग प्रणाली हैं।

आप सच में, सच सरल कुछ चाहते हैं, तुम कर सकते हो ..

import os 
import time 
while True: 
    disc_usage = os.system("df -h/| awk '{print $3}'") 
    log = open("mylog.txt") 
    log.write(disc_usage + "\n") 
    log.close() 
    time.sleep(60*5) 

फिर ..

f = open("mylog.txt") 
lines = f.readlines() 

# Convert each line to a float number 
lines = [float(cur_line) for cur_line in lines] 

# Get the biggest and smallest 
biggest = max(lines) 
smallest = min(lines) 

for cur_line in lines: 
    base = (cur_line - smallest) + 1 # make lowest value 1 
    normalised = base/(biggest - smallest) # normalise value between 0 and 1 
    line_length = int(round(normalised * 28)) # make a graph between 0 and 28 characters wide 
    print "#" * line_length 

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

संक्षेप में। यदि आप लगभग कुछ भी आसानी से ग्राफ करना चाहते हैं, तो munin का उपयोग करें। यदि आप कुछ छोटे और आत्मनिर्भर चाहते हैं, तो आरआरडीटूल के साथ कुछ लिखें।

1

मुझे लगता है कि वहाँ कुछ विकल्प होते हैं:

  1. शुद्ध सीएलआई समाधान के लिए, gnuplot जैसे कुछ का उपयोग करें। उदाहरण के उपयोग के लिए here देखें। मैं अपने छात्र जीवन के बाद से एक शुद्ध CLI समाधान gnuplot का इस्तेमाल किया है नहीं :-)

  2. नहीं वास्तव में, लेकिन JFreeChart की तरह कुछ डाउनलोड करने और है कि stdin पढ़ता है और अपने चार्ट बनाता है एक साधारण जावा अनुप्रयोग लिखें।

उम्मीद है कि इससे मदद मिलती है।

4

हमने RRDtool (एमआरटीजी जैसे टूल्स टू डेटा स्टोरेज का उपयोग करके) पर अपना खुद का काम किया। हम हर 5 मिनट में एक पर्ल स्क्रिप्ट चलाते हैं जो प्रति विभाजन को डु लेता है और इसे आरआरडी डेटाबेस में रखता है और फिर ग्राफ़ बनाने के लिए आरआरडी के ग्राफ फ़ंक्शन का उपयोग करता है। .rrd फ़ाइलों को सेट अप करने के लिए कुछ समय लगता है (उदाहरण के लिए, मुझे कुछ गणना करने के लिए आरपीएन को फिर से सीखना था) लेकिन यदि आपके पास कुछ डेटा है जो आप समय के साथ ग्राफ करना चाहते हैं, आरआरडी उपकरण एक अच्छी शर्त है।

9

यदि कुछ ASCII वर्ण आपके लिए पर्याप्त "ग्राफिकल" हैं, तो मैं ncdu की अनुशंसा कर सकता हूं। यह एक बहुत ही अच्छा इंटरेक्टिव सीएलआई उपकरण है, जो मुझे सीडी bigdir किए बिना बड़ी निर्देशिकाओं को नीचे जाने में मदद करता है; du-hs बार-बार।

+0

+1 दूरस्थ du -sh ing के लिए सही वृद्धि! इस उपकरण को प्यार करें, सुपर फास्ट यूज और वर्कफ़्लो को भी हटाएं! – barrymac

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^