-
-
Save joemiller/4069513 to your computer and use it in GitHub Desktop.
#!/bin/bash | |
if [ -z "$1" ]; then | |
echo | |
echo usage: $0 network-interface | |
echo | |
echo e.g. $0 eth0 | |
echo | |
echo shows packets-per-second | |
exit | |
fi | |
IF=$1 | |
while true | |
do | |
R1=`cat /sys/class/net/$1/statistics/rx_packets` | |
T1=`cat /sys/class/net/$1/statistics/tx_packets` | |
sleep 1 | |
R2=`cat /sys/class/net/$1/statistics/rx_packets` | |
T2=`cat /sys/class/net/$1/statistics/tx_packets` | |
TXPPS=`expr $T2 - $T1` | |
RXPPS=`expr $R2 - $R1` | |
echo "tx $1: $TXPPS pkts/s rx $1: $RXPPS pkts/s" | |
done |
#!/bin/bash | |
if [ -z "$1" ]; then | |
echo | |
echo usage: $0 network-interface | |
echo | |
echo e.g. $0 eth0 | |
echo | |
exit | |
fi | |
IF=$1 | |
while true | |
do | |
R1=`cat /sys/class/net/$1/statistics/rx_bytes` | |
T1=`cat /sys/class/net/$1/statistics/tx_bytes` | |
sleep 1 | |
R2=`cat /sys/class/net/$1/statistics/rx_bytes` | |
T2=`cat /sys/class/net/$1/statistics/tx_bytes` | |
TBPS=`expr $T2 - $T1` | |
RBPS=`expr $R2 - $R1` | |
TKBPS=`expr $TBPS / 1024` | |
RKBPS=`expr $RBPS / 1024` | |
echo "tx $1: $TKBPS kB/s rx $1: $RKBPS kB/s" | |
done |
hi
how can i see the live report like PRTG?
Thanks for sharing.
Works like a charm.
Thanks 💯
A bug in your scripts. If you represent bytes you need put B. If you like show bits, need pultiply by 8:
TKBPS=`expr $TBPS / 1024 \* 8`
RKBPS=`expr $RBPS / 1024 \* 8`
You can simply with:
TKBPS=`expr $TBPS / 128`
RKBPS=`expr $RBPS / 128`
thank you very much
Hi
nload shows big incomind traffic
How can I see what app generates it?
@nicdnepr You could try the nethogs
utility for that
@joemiller in netspeed.sh you should use kB/s instead kb/s
@mdobrzyn Yep! thanks for pointing that out. Updated.
@nicnepr I came across this new (to me, at least) tool written in Rust that will show network usage by application. It's also cross-platform. Might want to check it out.
My version of the script:
#!/bin/bash
# shellcheck disable=SC2034
i=$1
c=$2
e=1
if [ -z "$1" ] || [ -z "$2" ]; then
echo
echo usage: "$0" network-interface checkrepeats
echo e.g. "$0" eth0 10
echo
exit
fi
while [ "$e" -le "$c" ]
do
# Network Interface Load:
R1=$(cat /sys/class/net/"$1"/statistics/rx_bytes)
T1=$(cat /sys/class/net/"$1"/statistics/tx_bytes)
sleep 1
R2=$(cat /sys/class/net/"$1"/statistics/rx_bytes)
T2=$(cat /sys/class/net/"$1"/statistics/tx_bytes)
TBPS=$(expr $T2 - $T1)
RBPS=$(expr $R2 - $R1)
TKBPS=$(expr $TBPS / 1024)
RKBPS=$(expr $RBPS / 1024)
# CPU Load:
CPU_LOAD=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}') # percentage of CPU in use
MEM_LOAD=$(free | grep Mem | awk '{print $3/$2 * 100.0}') # percentage of Memory in use
echo "$1 tx: $TKBPS kB/s rx: $RKBPS kB/s, $(nproc) CPUs @ $CPU_LOAD load, $MEM_LOAD% Memory in use"
(( e++ ))
done
very nice, thank you
Thanks you Joe Miller! Been struggling for a way to do this, and all my solutions were very convoluted. Your scripts gave me the clues I needed to pull what I needed in a simple fashion. Very much appreciated!!
example: