W jaki sposób to robi conky?Download: 51 KB/s
Upload: 1 KB/s
edit: już nieważne - napisałem sobie skrypt który parsuje /proc/net/dev
W jaki sposób to robi conky?Download: 51 KB/s
Upload: 1 KB/s
Kod: Zaznacz cały
#!/bin/bash
max_chars=100 # maksymalna liczba znaków na konsoli (dlugosc paska wykresu)
max_down_speed=65536 # maksymalna prędkość pobierania w bajtach (tutaj 65536 B = 64 KB = 512Mb)
function get_speed()
{
speed=`cat /proc/net/dev | grep eth0`
if [ "$1" == 'up' ]; then
speed=`echo $speed | awk '{print $9}'`
last=$last_upl
last_upl=$speed
else
speed=`echo $speed | awk '{print $1}' | awk -F":" '{print $2}'`
last=$last_down
last_down=$speed
fi
speed=$[ $speed - $last ]
}
function kb()
{
bytes=$[$1 * 100 / 1024]
val=`echo $bytes | sed 's/\([[:digit:]]*\)\([[:digit:]]\{2\}\)/\1.\2/g'`
if [ `echo $val | wc -m` == 4 ]; then
val="0$val"
elif [ `echo $val | wc -m` == 3 ]; then
val="0.$val"
elif [ `echo $val | wc -m` == 2 ]; then
val="0.0$val"
fi
}
function wykres()
{
perc=$[$1 * 100 / $max_down_speed]
print_chars=$[$perc/ (100 / $max_chars)]
str='['
for s in `seq 0 $max_chars`
do
if [ $s -lt $print_chars ]; then
str+='#'
else
str+='-'
fi
done
str+=']'
}
last_upl=`cat /proc/net/dev | grep eth0 | awk '{print $9}'`
last_down=`cat /proc/net/dev | grep eth0 | awk '{print $1}' | awk -F":" '{print $2}'`
sleep 1
echo -e "\n"
i=1
while [ true ]
do
get_speed 'up'
kb $speed
upl_speed=$val
get_speed 'down'
wykres $speed
wykres=$str
down_sum=$[$down_sum + $speed]
kb $speed
down_speed=$val
down_avg=$[$down_sum/$i]
kb $down_avg
down_avg=$val
echo -e "\e[2A$wykres"
echo -e "Download: $down_speed KB/s\e[K\tUpload: $upl_speed KB/s\e[K\tDownload Avg: $down_avg KB/s"
i=$[$i+1]
sleep 1
done
Kod: Zaznacz cały
darek:~/skrypty/netstat$ ./netstat
[########---------------------------------------------------------------------------------------------]
Download: 5.55 KB/s Upload: 0.77 KB/s Download Avg: 5.24 KB/s
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 4 gości