Openwrt 扫描在线设备并自动关机
由于懒得在关闭PC或者手机后去关路由器,我写了2个关机脚本:
1.该脚本在局域网没有在线设备时关闭路由器
vi autoShutDownNoDevs.sh
#!/bin/sh
mon() {
while [ "1" ];
do
sleep 240
cc=`cat /proc/net/arp | grep 0x2`
if [ -z "$cc" ];then
if [ -f /tmp/noshut ];then
echo ' Shut Down aborted! '
else
kill -USR1 1
fi
fi
sleep 60
done
}
mon &
chmod +x autoShutDownNoDevs.sh
2.该脚本在局域网某两台固定IP的PC离线时关闭路由器(防止未关手机wifi时路由器无法关闭)
vi autoShutDownNoPCs.sh
#!/bin/sh
sleep 300
ping -c 1 172.24.1.150 > /dev/null
ret=$?
if [ $ret -eq 0 ]
then
echo ' Shut Down aborted! '
else
ping -c 1 172.24.1.155 >/dev/null
res=$?
if [ $res -eq 0 ]
then
echo ' Shut Down aborted! '
else
if [ -f /tmp/noshut ]
then
echo ' Shut Down aborted! '
else
kill -USR1 1
fi
fi
fi
chmod +x autoShutDownNoPCs.sh
定时任务
*/5 22-4 * * * /root/autoShutDownNoPCs.sh
参考资料:
- http://blog.csdn.net/qianguozheng/article/details/28393145