shell小指令碼 網速監控

2021-08-07 03:14:58 字數 2304 閱讀 3573

在windows中,我們可以在360等管家軟體中顯示網速,在linux下想要檢視實時的網速怎麼辦呢?當然在linux下也有很多

思路:  

在執行ifconfig檢視網絡卡資訊的時候,可以看到以下內容:

$ ifconfig

wlp2s0

wlp2s0: flags=4163

mtu 1500

inet

192.168.0.101 netmask 255.255.255.0 broadcast 192.168.0.255

inet6 fe80::a67b:d8cd:4fab:56bb prefixlen

64 scopeid 0x20

ether b8:ee:

65:1f:a0:d7 txqueuelen 1000

(乙太網)

rx packets

172968 bytes 211898232 (211.8

mb) rx errors

0 dropped 0 overruns 0 frame 0

tx packets

125730 bytes 13891021 (13.8

mb) tx errors

0 dropped 0 overruns 0 carrier 0 collisions 0

rx:接收的

tx:上傳的

版本一:

#!/bin/bash

# version 1  2017-08-14

while

true

do#記錄初始bytes數目

down_speed_old=`ifconfig wlp2s0 | sed -n '

s/rx.*bytes \([0-9]\+\).*/\1/p'`

up_speed_old=`ifconfig wlp2s0 | sed -n '

s/tx.*bytes \([0-9]\+\).*/\1/p'`

sleep

1#儲存最新的bytes數目

down_speed_now=`ifconfig wlp2s0 | sed -n '

s/rx.*bytes \([0-9]\+\).*/\1/p'`

up_speed_now=`ifconfig wlp2s0 | sed -n '

s/tx.*bytes \([0-9]\+\).*/\1/p'`

#計算下行與上行的網速

down_speed=`echo

"($down_speed_now-$down_speed_old)/1024

"|bc`

up_speed=`echo

"($up_speed_now-$up_speed_old)/1024

"|bc`

echo -e "

speed : \n\tdn : $[(($down_speed_now-$down_speed_old))] b/s \t $down_speed kb/s

"echo -e "

\tup : $[(($up_speed_now-$up_speed_old))] b/s \t $up_speed kb/s

"done

執行效果:

$ ./netspeed.sh

speed :

dn :

81894 b/s 79 kb/s

up :

13425 b/s 13 kb/s

speed :

dn :

2209563 b/s 2157 kb/s

up :

184518 b/s 180 kb/s

speed :

dn :

580299 b/s 566 kb/s

up :

49619 b/s 48 kb/s

speed :

dn :

472 b/s 0 kb/s

up :

164 b/s 0 kb/s

speed :

dn :

432 b/s 0 kb/s

up :

594 b/s 0 kb/s

speed :

dn :

162 b/s 0 kb/s

up :

328 b/s 0 kb/s

todo:

版本二:

shell小指令碼

前言 可能這些指令碼看起來很簡單,很多人都不屑於去寫,但是一切複雜的東西都是由乙個個簡單的東西組合起來的。shell的語法比較怪異,和一般的程式語言有很大的區別,真的要多動手去寫才能學會的 1.要求 1.設定變數file的值為 etc passwd 2.依次向 etc passwd中的每個使用者問好...

shell小指令碼4

1 編寫指令碼selinux.sh,實現開啟或禁用selinux功能 selinux有三種模式 enforcing 強制模式。代表selinux在執行,且已經開始限制domain type之間的驗證關係 permissive 寬容模式。不會限制domain type之間的驗證關係,即使驗證不正確,程...

Linux 常用shell小指令碼

1.計算指令碼運算時間 bin bash st date y m d h m s 運算過程開始 sleep 2 運算過程結束 en date y m d h m s st c date d st s en c date d en s interval expr en c st c echo star...