Wireless Router Application Platform/netled.sh
Aus BraLUG-Wiki
Version vom 1. März 2006, 11:56 Uhr von MaD (Diskussion | Beiträge)
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