预设时间比较复杂, crontab 一定要分开时间段来定义?

2015-10-18 20:07:32 +08:00
 hzqim
应用环境:
防止家人上网到深夜,预设 22:30 —— 6:00 关闭 WIFI ,但一般网络有问题,家人可能会去重启一下路由器,所以是每分钟运行一次,只要在预设的时间内,无论怎么重启,都是关闭 WIFI 的。

crontab 写法探讨:

以下写法是否有问题?关键是哪个分钟定义。。。

30-59/1 22-6 * * * /sbin/wifi down
5 6 * * * /sbin/wifi up ( 6 点 5 分开启 WIFI )

如果是这样写呢?
30-59/1 22 * * * /sbin/wifi down
*/1 23-6 * * * /sbin/wifi down
5 6 * * * /sbin/wifi up ( 6 点 5 分开启 WIFI )

更复杂一下,如果预设时间是 22:30 —— 6:30 ,是否要这样:
30-59/1 22 * * * /sbin/wifi down
*/1 23-6 * * * /sbin/wifi down
1-30/1 6 * * * /sbin/wifi down
35 6 * * * /sbin/wifi up ( 6 点 35 分开启 WIFI )

请各位不吝赐教,谢谢。
3377 次点击
所在节点    问与答
7 条回复
ETiV
2015-10-18 20:56:19 +08:00
这路由都有 cronjob ,就没有访问控制么?

按每日固定时间段,禁止一个 IP 段联网。

然后你自己的话,可以手动设置一个段外的 IP 地址,逃避此规则限制。
squid157
2015-10-18 21:30:37 +08:00
自己写个 shell script 进行判断和状态改动 每分钟运行一次
LazyZhu
2015-10-18 21:33:05 +08:00
OpenWRT 的话,可以直接设置,不用 cron:
http://wiki.openwrt.org/doc/uci/firewall
start_time
stop_time
skydiver
2015-10-18 21:34:20 +08:00
防止家人上网到深夜…………
这本来就不是技术问题。。。。
xbb7766
2015-10-18 21:37:08 +08:00
原来不止一个人有这种需要 -_-|||

lz 不如自己写个脚本,每分钟执行一次,获取时间,如果是断网时间那么就——咔嚓。

或者我用的办法是把指定设备的 mac 加到 openwrt 的防火墙规则, extra arguments 里设定生效时段,比如
-m time --kerneltz --weekdays Mon,Tue,Wed,Thu,Fri,Sat,Sun --timestart 22:30 --timestop 06:30
hzqim
2015-10-18 21:50:49 +08:00
@ETiV
@squid157
@LazyZhu
@skydiver
@xbb7766
谢谢各位支招,方法有多种,那么我们就来另外谈论一下 crontab 的写法,嘻嘻。
ryd994
2015-10-19 04:32:12 +08:00
crontab 关闭 WiFi 的时候创建一个文件
rc.local 如果发现该文件就关闭 WiFi
crontab 开启 WiFi 的时候再删掉

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/229005

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX