PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

无线路由器WIFI控制脚本(第二版)

[复制链接]
跳转到指定楼层
1#
jingling 发表于 2013-3-30 13:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:3755|回复数:4
本帖最后由 jingling 于 2013-3-31 13:25 编辑

        我目前使用的路由器是RT-N16,买来后发现背面的控制面板上没有无线开关,天天开着无线网络,总感觉辐射大,而且无线网络在不用的时候也开着,感觉路由器的功耗也大,毕竟无线网络也有功放的,一点都不环保。另外,无线网络的安全也受到影响。而每次想要关闭无线网络都需要手动进入路由器的页面采用命令关闭,关闭后,想要开启还得使用手机通过动态域名连接到路由器的WAN口,手动开启。很麻烦。今天没事的时候上网看了一下LINUX的SHELLL脚本,感觉使用这个脚本来定时开启、关闭无线网络倒是一个不错的办法。于是就学着试写了一下。呵呵。。。感觉还不错。拿出来分享一下,还望各位老鸟不要见笑。另外,这是我第一次写SHELL脚本,难免其中会有错误,欢迎大家雅正。。。。。。


#脚本用途:这个脚本可以定时开启或者关闭无线网络。如果大家感兴趣,请参照脚本下面的注解使用。
#测试硬件环境:ASUS RT-N16
#测试软件环境:Tomato DualWan v 13.02.0039 MIPSR2 K26 USB 8M
#脚本作者:jingling(键盘人生)
#脚本开始

#!/bin/sh
wl down;
yy=2013;
y=$(date '+%Y');
while [ $y -lt $yy ];
do
  ntpdate 133.100.11.8;
  wait;
  y=$(date '+%Y');
  sleep 1;
done

zero()
{
local zrr=$1;
local zr=${zrr:0:1};
  if [ $zr -eq 0 ];then
    zrr=${zrr:1:1};
  fi;
return $zrr;
}

determine()
{
if [ $2 != "-1" ];then
   local w=$(date '+%w');
   local h=$(date '+%H');
   local m=$(date '+%M');
   local temp=$2;
   local time1=${temp:0:5};
   local time2=${temp:6:5};
   local temp_h1=${time1:0:2};
   local temp_h2=${time2:0:2};
   local temp_m1=${time1:3:2};
   local temp_m2=${time2:3:2};
   local tt="0";
   if [ $temp_h1 -gt $temp_h2 ];then
      tt=$time1;
      time1=$time2;
      time2=$tt;
      temp_h1=${time1:0:2};
      temp_h2=${time2:0:2};
      temp_m1=${time1:3:2};
      temp_m2=${time2:3:2};
   fi;
   zero $temp_h1;
   temp_h1=$?;
   zero $temp_h2
   temp_h2=$?;
   zero $temp_m1
   temp_m1=$?;
   zero $temp_m2
   temp_m2=$?;
   if [ $1 -eq $w ];then
      if [ $h -gt $temp_h1 -a $h -lt $temp_h2 ];then
         wl up;
      elif [ $h -eq $temp_h1 ];then
          if [ $m -gt $temp_m1 ];then
             wl up;
          fi;
      elif [ $h -eq $temp_h2 ];then
          if [ $m -lt $temp_m2 ];then
             wl up;
          fi;
      fi;
   fi;
   cru d $time1-$1;
   wait;
   cru d $time2-$1;
   wait;
   cru a $time1-$1 "$temp_m1 $temp_h1 * * $1 wl up";
   wait;
   cru a $time2-$1 "$temp_m2 $temp_h2 * * $1 wl down";
   wait;
fi;
}

#下面为设置无线开启或者关闭的时间段,判断路由器无线网络开启或者关闭的函数为“determine”,在这个函数后面跟随两个参数,使用空格分开,第一个参数为星期几,第二个参数为开启无线网络的时间段,参数的具体说明在下面。
#“determine”参数1说明:
#参数1为数字表示星期几,取值范围为0~6,其中1代表星期一,2代表星期二,3代表星期三,4代表星期四,5代表星期五,6代表星期六,0代表星期日
#
#“determine”参数2说明:
#参数2为开启网络的时间段,使用24小时格式,格式为:“00:00-00:00”,如果大家不想开启无线路由则输入-1
#
#例1:
#determine 1 "05:30-07:15";
#wait;
#表示,周一在早五点三十分至早七点十五分之内开启无线网络。
#
#例2:
#determine 5 "-1";
#wait;
#表示,周五全天不开启无线网络。
#
#例3:
#determine 3 "05:30-07:30";
#wait;
#determine 3 "17:30-22:30";
#wait;
#表示,周三在两个时间段开启无线网络,第一个时间段为,早五点三十分至七点三十分,第二个时间段为,晚十七点三十分至二十二点三十分。
#脚本结束

        使用的时候把上面的内容复制到一个以“.sh”结尾的文件中。文件名大家可以自己起,然后把文件拷贝到路由器的u盘中,同时在u盘的启动脚本中加入一条指令“sh /xxxxxxxx/xxxxxx.sh”其中,sh为执行脚本的命令,后面加空格,空格后面添加脚本的路径与脚本的全名。然后,重启路由就应该能够看到效果了。呵呵。。。。。。


键盘人生

评分

参与人数 1活跃度 +10 收起 理由
gmx168 + 10 很给力!

查看全部评分

2#
cowboy82524 发表于 2013-4-15 21:54 | 只看该作者
只能膜拜了。。。
3#
wsy2220 发表于 2013-4-16 21:05 发自PCEVA移动客户端 | 只看该作者
膜拜。。。
4#
liaobot 发表于 2013-4-17 09:52 发自PCEVA移动客户端 | 只看该作者
程序员。。。
5#
haierccc 发表于 2013-4-17 21:40 | 只看该作者
这个太厉害了!
我曾经装过2回LINUX,结果都不了了之,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部