क्या वास्तव में एक बार चलने और बाहर निकलने के लिए "शीर्ष" प्राप्त करने का एक तरीका है?


13

मुझे लगता है कि शेल कमांड का उत्पादन topएक मशीन के स्वास्थ्य का मोटा विचार प्राप्त करने का एक सरल और परिचित तरीका है। मैं topएक छोटे वेब सर्वर से क्रूड मॉनिटरिंग उद्देश्यों के लिए मशीन पर एक छोटे वेब सर्वर से आउटपुट (या इसके समान कुछ) परोसना चाहता हूं ।

पात्रों को स्वरूपित किए बिना, एक बार इसके शाब्दिक आउटपुट को लिखने के लिए शीर्ष पाने का कोई तरीका है ? मैंने यह कोशिश की है:

(sleep 1; echo 'q') | top > output.txt

ऐसा लगता है कि मैं जो चाहता हूं, उसके करीब (1) को छोड़कर, इस बात की कोई गारंटी नहीं है कि मुझे एक या अधिक स्क्रीनफुल जानकारी नहीं मिलेगी या (2) मुझे सभी टर्मिनल फॉर्मेटिंग वर्णों को अलग करना होगा।

या फिर कुछ अन्य topतरह की कमांड है जो मशीन-वाइड और प्रोसेस-लेवल मेमोरी / सीपीयू उपयोग / अपटाइम जानकारी दोनों को सूचीबद्ध करती है?

(आदर्श रूप से, मुझे ऐसी रणनीति पसंद आएगी जो लिनक्स और मैक ओएस एक्स दोनों के लिए पोर्टेबल हो, क्योंकि हमारे देवता मैक और हमारे पर्यावरण लिनक्स का उपयोग करते हैं।)

जवाबों:


23

लिनक्स में, आप यह कोशिश कर सकते हैं:

top -bn1 > output.txt

से man top:

-b : Batch-mode operation
            Starts top in 'Batch' mode, which could be useful for sending
            output from top to other programs or  to  a  file.   In  this
            mode, top will not accept input and runs until the iterations
            limit you've set with the '-n' command-line option  or  until
            killed.
....
-n : Number-of-iterations limit as:  -n number
            Specifies  the  maximum  number of iterations, or frames, top
            should produce before ending.

ओएस एक्स के साथ, कोशिश करें:

top -l 1

से शीर्ष OSX मैनपेज :

 -l <samples>
              Use logging mode and display <samples> samples, even if 
              standard output is a terminal. 0 is treated  as  infinity.   
              Rather than redisplaying, output is periodically printed in 
              raw form. Note that the first sample displayed will have an 
              invalid %CPU displayed for each process,  as it is calculated 
              using the delta between samples.

यह बिल्कुल वैसा ही लगता है जैसा कि मैं देख रहा हूं कि अगर topओएस एक्स-बी फ्लैग का समर्थन करता है। :-( अफसोस की बात है, यह नहीं है, और मैं tophomebrew के माध्यम से उपलब्ध का एक संस्करण नहीं दिख रहा है । यह बिल्कुल Linux, tho के लिए सही जवाब की तरह लगता है।
मिकलोत

@ विकलोट: मेरे अपडेटेड देखें। क्या आप मैक ओएसएक्स में जीएनयू शीर्ष स्थापित कर सकते हैं?
कोउन्गलम

@ गनोक: /usr/bin/top -l 1OSX 10.9.4 परफेक्ट है ... धन्यवाद! जीएनयू शीर्ष स्थापित करने के लिए, मैं इसे अपनी मशीन पर स्थापित कर सकता हूं , लेकिन मुझे अन्य देवों को अपने कोड पर उनके लिए अपने काम के लिए मशीनों पर स्थापित करने के लिए राजी करना होगा, इसलिए मैं इससे बचता हूं। (अगर यह होमब्रे के माध्यम से उपलब्ध नहीं है, तो प्रतिरोध होगा। अब जब मैं प्लेटफ़ॉर्म पर आधारित हो जाऊंगा, मैं लालची होने जा रहा हूं ... क्या आप किसी भी विंडोज अर्ध-समकक्ष के बारे में जानते हैं, इसलिए वे देव (हमारे पास हैं) कुछ) का क्रूड स्टेटस पेज भी हो सकता है? (यदि नहीं, तो यह ठीक है, आपका उत्तर पहले से ही सुपर-सहायक है!)
मिकालोट

@ विकलॉट: OSX के टॉप मैनपेज से नोट को याद रखें, ध्यान दें कि पहले सैंपल को दिखाने पर प्रत्येक प्रक्रिया के लिए एक अमान्य% CPU प्रदर्शित होगा, क्योंकि यह नमूनों के बीच डेल्टा का उपयोग करके गणना की जाती है। । विंडोज उपयोगकर्ताओं के साथ, हो सकता है कि आप
क्यूंग्लम

@Gnuoc अतिरिक्त बिंदु के लिए धन्यवाद। मुझे लगता है कि मैं कर सकता हूं top -l 2और नमूनों के पहले पृष्ठ को फेंक दूंगा?
मिकालोट

1

विंडोज सिस्टम से समान प्रकार के नंबर प्राप्त करने के लिए आप पावरशेल पर एक नज़र रखना चाहेंगे।

बस आपको प्रक्रियाओं की एक सूची प्राप्त करने और देखने के लिए get-process। इस संदर्भ पर एक नज़र डालें ।

कुछ और खोज करने में, यहाँ एक अच्छा सा आदेश मिला ।

यदि आप प्रस्तुत किए गए लूप से बाहर निकालते हैं, तो आपकी आवश्यकताओं के लिए:

ps | sort -desc cpu | select -first 30

psके लिए एक उपनाम है get-process


यह एक बढ़िया विचार की तरह लगता है! मैं अपने विंडोज-टू
टॉकिंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.