Wireless Router Application Platform/netled.sh
Aus BraLUG-Wiki
(Unterschied zwischen Versionen)
MaD (Diskussion | Beiträge) (mal reingeschmissen...) |
Aktuelle Version vom 1. März 2006, 11:56 Uhr
Ein Skript zur Überwachung von Netzwerkinterfaces, primär für das WRAP-Board, in gewissem Maße auch unter X mit den Keyboard-LEDs nutzbar.
#!/bin/bash
ifs=(
[0]="eth0|wrap|2"
[1]="ath0|wrap|3"
)
n_ifs=${#ifs[@]}
function out_echo {
echo "$1$2 "
}
function out_xled {
if [ "$2" = "off" ]; then
xset -led "$1"
else
xset led "$1"
fi
}
function out_wrap {
if [ "$1" = "2" ]; then
if [ "$2" = "off" ]; then
# 1on 2off
echo "H" | dd of=/dev/port bs=1 count=1 seek=62464 2>/dev/null
else
# 1on 2on
echo "A" | dd of=/dev/port bs=1 count=1 seek=62464 2>/dev/null
fi
elif [ "$1" = "3" ]; then
if [ "$2" = "off" ]; then
# 3off
echo "L" | dd of=/dev/port bs=1 count=1 seek=62466 2>/dev/null
else
echo "A" | dd of=/dev/port bs=1 count=1 seek=62466 2>/dev/null
fi
fi
}
while true; do
i_if=0
while [ $i_if -lt $n_ifs ]; do
if=`echo "${ifs[$i_if]}" | cut -d\| -f 1`
func=`echo "${ifs[$i_if]}" | cut -d\| -f 2`
num=`echo "${ifs[$i_if]}" | cut -d\| -f 3`
line=`fgrep "$if:" /proc/net/dev | sed -e 's/^[^:]*://'`
if [ ! -z "$line" ]; then
#echo "$line"
pkts=`echo "$line" | awk '{ print $2 }'`
if [ "$pkts" != "${packets[$i_if]}" ]; then
packets[$i_if]="$pkts"
out_$func "$num" "on"
else
out_$func "$num" "off"
fi
fi
i_if=$(($i_if + 1))
done
LC_ALL=C sleep 0.1
done