Files
dotfiles/bin/checktraffic
T
2024-11-01 17:03:26 +07:00

70 lines
2.4 KiB
Bash
Executable File

#!/usr/bin/env sh
# ---- colors ----
RESET='\033[0m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
RED='\033[0;31m'
BLUE='\033[0;34m'
# ----------------
interface=$1
bytes=$2
prev_tx_traffic=0
prev_rx_traffic=0
while true; do
clear
tx_traffic=$(cat /sys/class/net/${interface}/statistics/tx_bytes)
rx_traffic=$(cat /sys/class/net/${interface}/statistics/rx_bytes)
tx_traffic_speed=$(($tx_traffic-$prev_tx_traffic))
rx_traffic_speed=$(($rx_traffic-$prev_rx_traffic))
# echo $tx_traffic_speed
# echo $rx_traffic_speed
prev_tx_traffic=$tx_traffic
prev_rx_traffic=$rx_traffic
traffic_color=$GREEN
if [[ $(echo $(($rx_traffic/1024/1024/1024))) > 5 ]]; then
traffic_color=$YELLOW
elif [[ $(echo $(($rx_traffic/1024/1024/1024))) > 10 ]]; then
traffic_color=$RED
fi
if [[ $bytes == 'k' ]] || [[ $bytes == 'K' ]]; then
printf "$BLUE tx traffic speed$RESET = $(($tx_traffic_speed/1024)) Kb/s\n"
printf "$BLUE tx traffic$RESET = $(($tx_traffic/1024)) Kb\n"
printf "$BLUE rx traffic speed$RESET = $(($rx_traffic_speed/1024)) Kb/s\n"
printf "$traffic_color rx traffic$RESET = $(($rx_traffic/1024)) Kb\n"
fi
if [[ $bytes == 'm' ]] || [[ $bytes == 'M' ]]; then
printf "$BLUE tx traffic speed$RESET = $(($tx_traffic_speed/1024/1024)) Mb/s\n"
printf "$BLUE tx traffic$RESET = $(($tx_traffic/1024/1024)) Mb\n"
printf "$BLUE rx traffic speed$RESET = $(($rx_traffic_speed/1024/1024)) Mb/s\n"
printf "$traffic_color rx traffic$RESET = $(($rx_traffic/1024/1024)) Mb\n"
fi
if [[ $bytes == 'g' ]] || [[ $bytes == 'G' ]]; then
if [[ $(echo $(($tx_traffic/1024/1024/1024))) == 0 ]]; then
printf "$BLUE tx traffic$RESET = $(($tx_traffic/1024/1024)) Mb\n"
else
printf "$BLUE tx traffic$RESET = $(($tx_traffic/1024/1024/1024)) Gb\n"
fi
if [[ $(echo $(($rx_traffic/1024/1024/1024))) == 0 ]]; then
printf "$traffic_color rx traffic$RESET = $(($rx_traffic/1024/1024)) Mb\n"
else
printf "$traffic_color rx traffic$RESET = $(($rx_traffic/1024/1024/1024)) Gb\n"
fi
fi
if [[ $bytes == 'b' ]] || [[ $bytes == '' ]]; then
printf "$BLUE tx traffic$RESET = $(($tx_traffic)) b\n"
printf "$traffic_color rx traffic$RESET = $(($rx_traffic)) b\n"
fi
sleep 1
done