https://serverfault.com/questions/533513/how-to-get-tx-rx-bytes-without-ifconfig
1 2 3 4 5 6 7
| cat /proc/net/dev
Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 29846937 129576 0 0 0 0 0 0 29846937 129576 0 0 0 0 0 0 wlan0: 9467393340 8027251 0 0 0 0 0 0 2559312961 5896509 0 0 0 0 0 0
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
ethn=$1
RX_pre=$(cat /sys/class/net/$ethn/statistics/rx_bytes) TX_pre=$(cat /sys/class/net/$ethn/statistics/tx_bytes)
while true; do
sleep 1 RX_next=$(cat /sys/class/net/$ethn/statistics/rx_bytes) TX_next=$(cat /sys/class/net/$ethn/statistics/tx_bytes)
RX_delta=$((${RX_next} - ${RX_pre})) TX_delta=$((${TX_next} - ${TX_pre}))
RX_pre=$RX_next TX_pre=$TX_next
if [[ $RX_delta -lt 1024 ]]; then RX_delta="${RX_delta} B/s" elif [[ $RX_delta -lt 1048576 ]]; then RX_delta=$(echo $RX_delta | awk '{printf "%.2f KB/s", $1/1024}') else RX_delta=$(echo $RX_delta | awk '{printf "%.2f MB/s", $1/1048576}') fi
if [[ $TX_delta -lt 1024 ]]; then TX_delta="${TX_delta} B/s" elif [[ $TX_delta -lt 1048576 ]]; then TX_delta=$(echo $TX_delta | awk '{printf "%.2f KB/s", $1/1024}') else TX_delta=$(echo $TX_delta | awk '{printf "%.2f MB/s", $1/1048576}') fi
if [[ $RX_next -lt 1024 ]]; then RX_total="${RX_next} B" elif [[ $RX_next -lt 1048576 ]]; then RX_total=$(echo $RX_next | awk '{print $1/1024 " KB"}') elif [[ $RX_next -lt 1073741824 ]]; then RX_total=$(echo $RX_next | awk '{print $1/1048576 " MB"}') else RX_total=$(echo $RX_next | awk '{print $1/1073741824 " GB"}') fi
if [[ $TX_next -lt 1024 ]]; then TX_total="${TX_next} B/s" elif [[ $TX_next -lt 1048576 ]]; then TX_total=$(echo $TX_next | awk '{print $1/1024 " KB"}') elif [[ $TX_next -lt 1073741824 ]]; then TX_total=$(echo $TX_next | awk '{print $1/1048576 " MB"}') else TX_total=$(echo $TX_next | awk '{print $1/1073741824 " GB"}') fi
printf "\033[2K\t$ethn 接收:%11s %14s \t\t 发送:%11s %14s\r" "$RX_total" "$RX_delta" "$TX_total" "$TX_delta"
done
|