क्या एक शीर्ष-जैसा आदेश है जो नेटवर्क बैंडविंड और रनिंग प्रक्रियाओं की फ़ाइल एक्सेस दिखाता है


31

उदाहरण के लिए, हम देखना चाहेंगे:

PROCESS       IF       TX       RX       FILE(regular) R/W
prog1         eth0     200kB/s  12kB/s   --            --
              wlan0    12kB/s   100kB/s  --            --
              --       --       --       file1         R
              --       --       --       file2         R
              --       --       --       file3         W
prog2         eth0     0kB/s    200kB/s  --            --
              --       --       --       file4         W
              --       --       --       file5         W

क्या यह संभव है? nethogs केवल TX / RX दिखाता है, जबकि lsof केवल फ़ाइल एक्सेस दिखाता है।

मैं वर्तमान में 2-चरणीय प्रक्रिया कर रहा हूँ जैसे:

sudo nethogs
sudo lsof -a -d 1-999 -c hogging_program /

क्या कोई बेहतर तरीका है?

जवाबों:


5

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

कुछ के लिए आपकी खोज जो नेटवर्क और फ़ाइल आँकड़े दोनों को दिखाती है - जो कि ऑपरेटिंग सिस्टम के दो अलग-अलग हिस्सों द्वारा प्रदान की जाएगी - ऐसा लगता है कि 'द यूनिक्स दर्शन:' के कुछ किरायेदारों के खिलाफ है।

  • प्रत्येक कार्यक्रम को एक काम अच्छे से करें। एक नया काम करने के लिए, नई सुविधाओं को जोड़कर पुराने कार्यक्रमों को जटिल बनाने के बजाय नए सिरे से निर्माण करें।
  • हर प्रोग्राम के आउटपुट की अपेक्षा दूसरे के लिए इनपुट बनने के लिए, जैसा कि अभी तक अज्ञात है, प्रोग्राम है। बाहर की सूचना के साथ अव्यवस्था उत्पादन मत करो।

यह उन प्रोग्रामों में विशेष रूप से स्पष्ट है जो आउटपुट टेक्स्ट, जैसे lsof। आप आमतौर पर एक उपयोगकर्ता इंटरफ़ेस प्रदान करने वाले * NIX कंसोल प्रोग्राम को किसी अन्य प्रोग्राम में पाइप किए जाने वाले डेटा के रूप में नहीं देखते हैं, या संभवतः अपने स्वयं के विशेष रूप से अनुरूपित आउटपुट बनाने के लिए कट जैसी कमांड का उपयोग करते हुए एक स्क्रिप्ट ।

डग McIlroy ने अपने पहले के बयान को वर्षों बाद संक्षेप में प्रस्तुत किया:

ऐसे कार्यक्रम लिखें जो एक काम करते हैं और इसे अच्छी तरह से करते हैं। एक साथ काम करने के लिए कार्यक्रम लिखें। पाठ धाराओं को संभालने के लिए प्रोग्राम लिखें, क्योंकि यह एक सार्वभौमिक इंटरफ़ेस है।

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


7
यह प्रश्न का उत्तर प्रदान नहीं करता है।
बिल्ली

क्या यह संभव है? - मेरा मानना ​​है कि जो आप पूरा करने की कोशिश कर रहे हैं वह संभवतः सबसे अच्छा है (और जहां तक ​​मुझे केवल पता है) संभव है कि आपके वर्तमान में कर रहे कई कमांडों का संयोजन हो। -- क्या कोई बेहतर तरीका है? मेरा मानना ​​है कि आप जो कोशिश कर रहे हैं वह शायद सबसे अच्छा है और केवल कई आदेशों को समझाने के लिए संभव है ... कुछ चतुर शेल स्क्रिप्टिंग और पाइप किए गए डेटा के साथ, आप आउटपुट [जिस तरह से देख रहे हैं] प्राप्त कर सकते हैं। - मुझे क्या सवाल याद आया? पाइप की गई शेल स्क्रिप्ट के उल्लेख के साथ बेहतर उत्तर दिया जा सकता है, लेकिन आपकी उपयोगी प्रतिक्रिया ने यह उल्लेख नहीं किया है कि: पी एक काम स्क्रिप्ट का उचित उत्तर है?
overprescribed

मेरा मानना ​​है कि जो आप पूरा करने की कोशिश कर रहे हैं, वह संभवतः "एक सवाल का जवाब" के रूप में वर्णित किया गया है; दर्शन पर किसी का व्याख्यान नहीं।
गार्डनर बिकफोर्ड

बीमार ने उत्तर को अधिक स्पष्ट रूप से शीर्ष पर रखा। हालांकि, दर्शन पाठ में कोई भी नहीं सीखता है कि उत्तर क्यों नहीं है, और इंटरनेट में वापस भटक सकता है, लिनक्स टॉर्वाल्ड के बुद्धिमान शब्दों को कभी नहीं समझ सकता है; "लिनक्स दर्शन 'खतरे के सामने हंसना है!' उफ़। गलत एक। 'खुद करो।' बस।"
overprescribed

17

प्रयास करें iftop नेटवर्क और से pidstat के लिए sysstat

अपनी पसंद के वितरण के लिए दोनों शायद एक आसान स्थापित (उपयुक्त-मिल, आदि) हैं।


6

atopआपको जो आप चाहते हैं, उसे देने का कोई रास्ता जाता है, हालांकि यह फ़ाइलहैंडल द्वारा I / O को तोड़ने के रूप में विशिष्ट नहीं होगा। पूर्ण नेटवर्किंग आँकड़े प्राप्त करने के लिए आपको कर्नेल पैच लगाना होगा।


2

iptraf बहुत उपयोगी हो सकता है और बैंडविड्थ हॉग ढूंढ सकता है।


5
अधिक जानकारी / स्पष्टीकरण जोड़ने से आपका उत्तर बेहतर होगा।
mtk
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.