如何在Linux Cron中设置自定义调度?求助特定时段的Crontab配置
配置符合需求的Cron任务
没问题,我来帮你搞定这个定时任务的配置!你需要的是周一至周五9:00到15:30期间每分钟调用指定PHP文件,原来的*/1 * * * *会让任务每分钟无差别执行,确实不符合你的时间范围要求,下面是正确的配置方案:
方案一:拆分两个任务(更清晰易读)
把时间范围拆成两段来配置,避免复杂的表达式逻辑,新手也能一眼看懂:
- 周一至周五9:00-14:59,每分钟执行一次:
*/1 9-14 * * 1-5 wget http://example.com/trail.php
- 周一至周五15:00-15:30,每分钟执行一次:
0-30 15 * * 1-5 wget http://example.com/trail.php
方案二:单条表达式(更简洁)
也可以用逗号合并规则,写成一条命令(逻辑和上面完全一致):
*/1 9-14,15 * * 1-5 [ $(date +\%M) -le 30 ] && wget http://example.com/trail.php
不过这种方式需要依赖Shell的条件判断,不如拆分任务直观,更推荐方案一。
字段含义拆解
Cron的时间字段顺序是:分钟 小时 日期 月份 星期,对应上面的配置:
*/1:每分钟执行一次(等价于0-59)9-14:每天的9点到14点(包含9:00和14:59)0-30:15点的0分到30分(包含15:00和15:30)1-5:周一到周五(Cron中1代表周一,5代表周五)
额外优化建议
如果不想让wget生成多余的下载文件或日志,可以加上参数优化,避免占用磁盘空间:
*/1 9-14 * * 1-5 wget -q -O /dev/null http://example.com/trail.php
-q:静默模式,不输出执行日志-O /dev/null:将请求返回的内容直接丢弃,不保存到本地
内容的提问来源于stack exchange,提问作者Jaccs
相关产品推荐
相关产品推荐

