Useful Scripts
From DD-WRT Wiki
Revision as of 22:45, 3 July 2006 by 222.234.7.12 (Talk)
Contents |
WRT Scripts
This page is intended to house useful scripts that help monitor or enhance the features of your DD-WRT capable router.
The example scripts are written using the GPIO info for the Linksys WRT. Remember to change them for whatever router you have.
See Startup Scripts to run scripts on router startup.
LED Scripts
GPIO Info for Linksys WRT
Pin Direction Name Use GPIO 0 Output WLAN LED (LED - Wireless) GPIO 1 Output POWER LED (LED - Power) GPIO 2 Output ADM_EECS (LED - White, Cisco Button V3.0+) GPIO 3 Output ADM_EESK (LED - Amber, Cisco Button V3.0+) GPIO 4 Input ADM_EEDO (Button - Cisco Button V3.0+) GPIO 5 Output ADM_EEDI (Unknown) Seems to cycle all LED colors disabled. GPIO 6 Input RESET (Button - Reset Button) GPIO 7 Output DMZ LED (LED - DMZ)
GPIO Info for Buffalo WHR
Pin Direction Use GPIO 0 Input AOSS Button GPIO 1 Output Bridge LED GPIO 2 Output WLAN LED GPIO 3 Output Extra LED between bridge and WLAN GPIO 4 Input Reset Button GPIO 5 Input Bridge/Auto Switch GPIO 6 Output AOSS LED GPIO 7 Output DIAG LED GPIO 8 n/a Unkown/None GPIO 9 Output Power LED
50576514278662575352382
load.sh
- Uses front button LED to display current load on router.
#!/bin/sh gpio="gpio" amber=3 white=2 delay=3 meltdown=400 overload=100 highload=70 medload=30 while sleep $delay do set -- $(cat /proc/loadavg) load="${1%.*}${1#*.}" if [ $load -gt $meltdown ] then $gpio disable $amber usleep 50000 $gpio disable $white usleep 50000 reboot elif [ $load -gt $overload ] then $gpio disable $amber usleep 50000 elif [ $load -gt $highload ] then $gpio disable $amber usleep 12500 $gpio enable $amber usleep 12500 $gpio disable $amber usleep 12500 $gpio enable $amber usleep 12500 $gpio disable $amber usleep 12500 $gpio enable $amber usleep 12500 elif [ $load -gt $medload ] then $gpio enable $amber $gpio disable $white usleep 25000 $gpio enable $white usleep 25000 $gpio disable $white usleep 25000 $gpio enable $white usleep 25000 else $gpio disable $white usleep 50000 $gpio enable $white usleep 50000 fi done
ssh_users.sh
- Displays when someone is connected using SSH.
Remove lines starting with '# ' (hash + blank).
#!/bin/sh led=2 interval=5 on=0 /sbin/gpio enable $led while sleep $interval do # Make sure we get local port 22 and not any port starting with 22: users=$(/bin/netstat -n | /usr/bin/awk '$4~/:22$/ {++x}; END {print x+0}') if [ $users -gt 0 ]; then if [ $on -eq 0 ]; then /sbin/gpio disable $led on=1 fi else if [ $on -eq 1 ]; then /sbin/gpio enable $led on=0 fi fi done
wake.sh
- Enables you to power on a LAN computer by name instead of IP address/MAC, based on DHCP lease table (mandatory).
Usage: /path/to/wake.sh <hostname>
(Default hostname is desktop)
STATION=mm WOL=/usr/sbin/wol STATICS=/tmp/udhcpd.statics DEV=br0 if [ -n "$1" ]; then STATION=$1 fi while read LINE do IP=`echo $LINE | awk '{print $1}'` MAC=`echo $LINE | awk '{print $2}'` FOUND=`ip neigh | grep "$IP.*REACHABLE"` if [ -z "$FOUND" ]; then echo Creating ARP entry for $IP $MAC ip neigh add $IP lladdr $MAC dev $DEV nud reachable 2> /dev/null ip neigh change $IP lladdr $MAC dev $DEV nud reachable 2> /dev/null fi done < $STATICS LEASE=`cat $STATICS | grep "\b$STATION\b$"` if [ -n "$LEASE" ]; then IP=`echo $LEASE | awk '{print $1}'` MAC=`echo $LEASE | awk '{print $2}'` $WOL -i $IP $MAC else echo Unable to find \"$STATION\" in DHCP static file $STATICS, please use \"$0 \<hostname\>\" fi
always_on.sh
- Pings your default gateway every time and force a DHCP renew if no packets are received.
Usage: /path/to/always_on.sh &
#!/bin/sh INTERVAL=10 PACKETS=1 UDHCPC="udhcpc -i vlan1 -p /var/run/udhcpc.pid -s /tmp/udhcpc" IFACE=vlan1 ME=`basename $0` RUNNING=`ps | grep $ME | wc -l` if [ "$RUNNING" -gt 3 ]; then echo "Another instance of \"$ME\" is running" exit fi while sleep $INTERVAL do TARGET=`ip route | awk '/default via/ {print $3}'` RET=`ping -c $PACKETS $TARGET 2> /dev/null | awk '/packets received/ {print $4}'` if [ "$RET" -ne "$PACKETS" ]; then echo Ping failed, releasing IP address: $IFACE #send a RELEASE signal kill -USR2 `cat /var/run/udhcpc.pid` 2> /dev/null #ensure udhcpc is not running killall udhcpc 2> /dev/null echo Renewing IP address: $IFACE $UDHCPC echo Waiting 10 s ... sleep 10 else echo Network is up via $TARGET fi done
== Pharmacy Links ==
- For Deltasone visit \'\'\'Buy Deltasone and Online Information\'\'\' site.
- For Danazol visit \'\'\'Buy Danazol and Online Information\'\'\' site.
- For Cozaar visit \'\'\'Buy Cozaar and Online Information\'\'\' site.
- For Cipro visit \'\'\'Buy Cipro and Online Information\'\'\' site.
- For Buspar visit \'\'\'Buy Buspar and Online Information\'\'\' site.
- For Augmentin visit \'\'\'Buy Augmentin and Online Information\'\'\' site.
- For Aristocort visit \'\'\'Buy Aristocort and Online Information\'\'\' site.
- For Allegra visit \'\'\'Buy Allegra and Online Information\'\'\' site.
- For Desyrel visit \'\'\'Buy Desyrel and Online Information\'\'\' site.
- For Viagra visit \'\'\'Buy Viagra and Online Information\'\'\' site.
- For Cialis visit \'\'\'Buy Soma and Online Information\'\'\' site.
- For Soma visit \'\'\'Buy Cialis and Online Information\'\'\' site.
- For Zocor visit \'\'\'Buy Zocor and Online Information\'\'\' site.
- For Zoloft visit \'\'\'Buy Zoloft and Online Information\'\'\' site.
- For Celebrex visit \'\'\'Buy Celebrex and Online Information\'\'\' site.
- For Levitra visit \'\'\'Buy Levitra and Online Information\'\'\' site.
- For Propecia visit \'\'\'Buy Propecia and Online Information\'\'\' site.