टर्मिनल में वर्तमान अपलोड और डाउनलोड गति कैसे प्राप्त करें?


10

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

मैं इसे कैसे प्राप्त करूं?

जवाबों:


14

अजीब तरह से सबसे आसान तरीका लग रहा है /proc/net/dev। मैंने उस फ़ाइल की तुलना दो बार करने के लिए (दूसरी देरी के साथ) और फिर कुल बाइट मानों को घटाने के लिए लिखा है। इस मामले em1में नेटवर्क अडैप्टर है तो बस इसे बदल दें जो भी आपको देखने की जरूरत है।

awk '/em1/ {i++; rx[i]=$2; tx[i]=$10}; END{print rx[2]-rx[1] " " tx[2]-tx[1]}' \
 <(cat /proc/net/dev; sleep 1; cat /proc/net/dev)

आउटपुट दो नंबर है। प्रति सेकंड प्राप्त बाइट्स प्रति सेकंड बाइट्स के बाद प्राप्त किया।


3
हम वहाँ चलें। इसे एक अजीब बयान में उबाला। Bootiful।
ओली

11

यहाँ ओली के उत्कृष्ट समाधान पर भिन्नता है:

awk '{if(l1){print $2-l1,$10-l2} else{l1=$2; l2=$10;}}' \
  <(grep wlan0 /proc/net/dev) <(sleep 1; grep wlan0 /proc/net/dev)

यह ओली के दृष्टिकोण के समान परिणाम प्रिंट करेगा:

$ awk '{if(l1){print $2-l1,$10-l2} else{l1=$2; l2=$10;}}' \
>   <(grep wlan0 /proc/net/dev) <(sleep 1; grep wlan0 /proc/net/dev)
401500 30286

पहला मूल्य प्रति सेकंड बाइट्स में डाउनलोड दर है और दूसरा अपलोड दर है। आप इसके साथ एक अधिक मानव-अनुकूल प्रारूप प्राप्त कर सकते हैं:

$ awk '{if(l1){print ($2-l1)/1024"kB/s",($10-l2)/1024"kB/s"} else{l1=$2; l2=$10;}}' \
    <(grep wlan0 /proc/net/dev) <(sleep 1; grep wlan0 /proc/net/dev)
398.771kB/s 82.8066kB/s

नोट: उबंटू 18.04 पर मुझे wlp1s0इसके बजाय उपयोग करना था wlan0। मैं उत्तर को संपादित नहीं करूंगा क्योंकि मुझे पता है कि यह डिस्ट्रो पर निर्भर करता है।
डैनियल सेरोडियो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.