जवाबों:
अजीब तरह से सबसे आसान तरीका लग रहा है /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)
आउटपुट दो नंबर है। प्रति सेकंड प्राप्त बाइट्स प्रति सेकंड बाइट्स के बाद प्राप्त किया।
यहाँ ओली के उत्कृष्ट समाधान पर भिन्नता है:
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
wlp1s0इसके बजाय उपयोग करना था wlan0। मैं उत्तर को संपादित नहीं करूंगा क्योंकि मुझे पता है कि यह डिस्ट्रो पर निर्भर करता है।