OpenWrt 计划任务使用方法
linux重启定时任务crontab命令
/etc/init.d/cron stop
/etc/init.d/cron start
/etc/init.d/cron restart
每天2点定时重启服务器
crontab -e,编辑定时任务文本
添加以下后ctrl+x,再按y退出
0 2 * * * /sbin/reboot
- - - - - - - - - - - - - - - - - - - - - - - - - -
计划任务(Corn)是 Unix 和 类Unix 系统中一个常见的功能,用于设置周期性的被执行的命令。
计划任务的每个任务被存储在corntab
文件中。在正常的 Linux 系统下,每个用户对应一 corntab 个文件,还有一个针对整个系统的 corntab 文件。不过在 OpenWrt,只有针对于整个系统的 corntab 文件,位于/etc/corntab/root
。
在 corntab 文件中,每一行对应一个任务,一个任务由执行时间和执行命令两部分组成,而执行时间又细分为:分、时、日、月、周,以空格分割。
对于某些刚接触 OpenWrt 或者 Linux 的小伙伴来说,都不知道这个计划任务有什么用处,很多小伙伴都经常问我:小山,给固件加一个定时重启吧,我一般都会说,直接在计划任务添加啊,然后收到的回复一般都是:怎么用啊。
我表示很无奈啊,那这篇文章就教大家如何使用计划任务。
计划任务语法
刚刚我们说过了,在 corntab 文件里,每一行对应一个任务,那么一个任务是由一个指令构成的,这个指令包含执行时间和执行命令,那么这个任务指令究竟要怎么写呢?
任务指令由6个部分组成:分、时、日、月、周、命令
时间参数范围
分:0 – 59
时:0-23
日:1-31
月:1-12
周:0-7 (周日用 0 或 7 表示)
除了上面这些绝对值,还有一些特殊符号。
逗号 ( , ):将多个值分开
连词符 ( – ):指定值的范围
星号 ( * ):表示任何值,也可以理解为通配符。
斜杠 ( / ):需要和星号搭配使用,下面例子中告诉大家如何使用。
例子:0 6 * * * reboot
每天6点0分执行reboot
命令。因为只设置了“分”和“时”,“日月周”都是通配符,所以只要当前时间是 6点0分,不管当前是几月几日周几都会被执行。
还是例子:0 6 * * 1,3 reboot
每周一和周三的6点0分执行reboot
命令。因为“周”被设置为了1,3
,逗号是将多个值分开,当条件达到其中一个值时便会执行。所以只有在周一或者是周三的6点0分才会被执行,当然,也不管当前是几月几日。
再来个例子:0 6 * 3-6 1,3 reboot
这个例子的月改为了3-6
,连字符的作用是指定范围,它就是在三月至六月的每周一和每周三的6点0分执行reboot
命令。其实也可以这样写0 6 * 3,4,5,6 1,3 reboot
,不过这样不够简洁,推荐还是使用连字符。
斜杠例子:0 */3 * * * reboot
斜杠的作用是跳过某些特定值。你可以把它看作一个除法,当结果等于整数时才会执行。上面个例子,把时写成了*/3
,星号表示任何值、/表示除法、3表示除数。那么,如果现在是1点,1/3 不是整数,就不会被执行,如果是9点,9/3 是整数,它就可以被执行。不知道我这样说大家有没有理解。(小山数学是体育老师教的)
最后一个例子:*/10 */3 * * * reboot
这个例子有两个斜杠,分别是分和时,那么不但要满足当前“分”除于10是整数,还需要满足“时”除于3是整数,比如1点10分,虽然“分”满足了条件,不过“时”并没有,只有当前时间为3点40分,这样的情况下,才会触发执行。
可能有的小伙伴要问了,计划任务究竟在哪里写?登陆 OpenWrt 网页管理 → 系统 → 计划任务,如下图:
计划任务注意事项
我们先来说一下上面那个重启设备,那种写法其实是错误的,正确的写法应该是:0 6 * * * sleep 60 && reboot
。
为什么呢?因为当设备重启后,计划任务的守护进程被启动,便会立即检查一遍是否有任务需要被执行,设备重启时间一般是小于1分钟的,所以当设备重启后,就又会触发这个重启任务,直到时间不匹配为止,而延迟60秒再重启设备可以避免这种错误。
当日或周同时被设定为固定值时,那么其中的一个条件被满足时,任务就会被执行,不会等到两个条件均满足。(这么苛刻的条件,能满足的估计不多。)
命令中双引号使用 % 时,需要加反斜杠转义,错误的例子:0 6 * * * touch /tmp/$(date "%Y")
,正确的例子:0 6 * * * touch /tmp/$(date "\%Y")
。
http://www.openwrt.pro/post-452.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具