openwrt Crontab wifi schedule

定时常用工具 Crontab

常用命令

  • crontab -l //列出当前的默认计划任务列表
  • crontab -r //删除当前的默认计划任务列表
  • crontab -e //修改当前的默认计划任务列表
  • [minute] [hour] [day of month] [month] [day of week] [program to be run]
    • minute(0-59) hour(0-23) day of month(1-31) month(1-12) day of week(0-7,0 or 7 is Sun) //其中各个参数的取值范围,
    • 每个参数里的取值可以有4种间隔符:
    • * 表示任意
    • – 表示范围
    • , 表示枚举多个值
    • / 表示每隔

例: 周一到周五每天晚上23:30执行ruijieclient -k

30 23 * * 1-5 /bin/ruijieclient -k

每天每隔10分钟执行date

*/10 * * * * date

设置定时任务

  • 在 /etc/crontabs/目录下新建root 文件并编辑定时任务,如下wifi 定时
  • 使能contab服务命令:/etc/init.d/cron enable
  • /etc/init.d/cron start/restart    //启动或重启Crontab
  • 后续想要编辑root文件可以直接输入crontab –e命令接口

注意: 脚本 要加执行权限 chmod 755 wifioff.sh, 如果脚本不执行,可能需要去掉第一行#!/bin/sh,有时需要文件最后加一个空行

如 wifi 定时 加入 root 文件
配置入下: 周一至周五
30 1 * * 1-5 /etc/wifioff.sh 凌晨1.30关闭无线,要睡觉了。睡觉避免辐射
0 7 * * 1-5 /etc/wifion.sh 早上7点打开无线,手机要离线下载新闻,上班路上看
0 9 * * 1-5 /etc/wifioff.sh 早上9点关闭无线
0 16 * * 1-5 /etc/wifion.sh 下午16点开启无线等待楼主下班回家
周六至周日
0 2 * * 6,0 /etc/wifioff.sh 凌晨2点关闭无线睡觉
0 7 * * 6,0 /etc/wifion.sh 早上7点开启无线至第二天凌晨2点

查看 wifi 配置

vi /etc/config/wireless // 可以看出radio0 是2.4G, radio1 是5G

config wifi-device 'radio0'
option type 'mac80211'
option channel '13'
option hwmode '11g'
option path 'pci0000:00/0000:00:11.0'
option htmode 'HT40'
option noscan '1'
option country 'CN'
option txpower '10'
option disabled '0'

config wifi-iface
option device 'radio0'
option network 'lan'
option mode 'ap'
option encryption 'psk2'
option ssid 'OpenWrt_2.4G'
option key '83xxxxxx'
option wps_pushbutton '0'
option disabled '0'

config wifi-device 'radio1'
option type 'mac80211'
option channel '157'
option hwmode '11a'
option path 'pci0000:00/0000:00:12.0'
option htmode 'HT40'
option noscan '1'
option country 'CN'
option txpower '20'
option disabled '0'

config wifi-iface
option device 'radio1'
option network 'lan'
option mode 'ap'
option encryption 'psk2'
option ssid 'OpenWrt_5G'
option key '8xxxxxxx'
option wps_pushbutton '0'

新建脚本 wifioff.sh

#!/bin/sh
uci set wireless.radio0.disabled=1
uci commit wireless
wifi

toggle Wifi 脚本

#!/bin/sh
SW=$(uci -q get wireless.@wifi-device[0].disabled)
[ "$SW" == "1" ] && uci set wireless.@wifi-device[0].disabled=0
[ "$SW" == "1" ] || uci set wireless.@wifi-device[0].disabled=1
uci commit wireless
wifi

# led 灯 开关 可选
SW=$(uci -q get wireless.@wifi-device[0].disabled)
["$SW"=="1"] && echo 0 > brightness
["$SW"=="1"] || echo 1 > brightness

查看 cron 是否启动,

root@LEDE:~# ps | grep cron 
  6990 root 1044 S grep cron 

root@LEDE:~# /etc/init.d/cron start 

root@LEDE:~# ps | grep cron 
  7008 root 1044 S /usr/sbin/crond -f -c /etc/crontabs -l 5 
  7012 root 1044 S grep cron