求助:PuTTY中如何配置符合指定时间规则的Cron定时任务
PuTTY环境下Cron定时任务配置方案
第一类任务(每月3日-5日07:37-21:00每15分钟执行)
你写的37 7-21 3-5 * *写法错误,问题如下:
- 分钟字段仅指定了37,代表仅在每小时第37分钟触发,完全达不到每15分钟执行一次的要求
- 未匹配跨小时的间隔时间点,会漏掉绝大多数符合要求的执行时间
由于cron的步长语法(*/n)是从字段最小值开始计算间隔,无法直接实现从非整点分钟(37分)开始的跨小时15分钟间隔,需要拆分为2条配置实现严格的间隔要求:
# 匹配7点段的37分、52分 37,52 7 3-5 * * /你的/绝对路径/执行命令 # 匹配8点到20点段,每小时的7分、22分、37分、52分 7,22,37,52 8-20 3-5 * * /你的/绝对路径/执行命令
补充:如果业务要求21:00整必须额外执行一次,可新增一条配置:
0 21 3-5 * * /你的/绝对路径/执行命令;严格按07:37开始累加15分钟计算的话,最后一次执行时间为20:52,21:00不在间隔序列中。
第二类任务(每日17:05-18:05每5分钟执行一次)
该需求同样不能直接用步长语法(会导致18点段执行到18:55,超出时间范围),拆分为2条配置即可:
# 匹配17点段05分开始每5分钟的时间点 5,10,15,20,25,30,35,40,45,50,55 17 * * * /你的/绝对路径/执行命令 # 匹配18点段的0分、5分 0,5 18 * * * /你的/绝对路径/执行命令
PuTTY操作注意事项
- 登录目标服务器后,输入
crontab -e进入cron配置编辑界面,首次使用会提示选择编辑器,新手推荐选择nano,操作门槛更低 - 编辑完成后,nano编辑器按
Ctrl+O确认保存,Ctrl+X退出;vim编辑器按Esc后输入:wq回车保存退出 - 配置完成后输入
crontab -l可查看当前用户下所有生效的cron任务,核对配置是否正确 - 所有执行的脚本、命令尽量写全绝对路径,避免cron运行时因环境变量PATH不一致找不到命令
- 配置前先输入
date确认服务器本地时区、时间与预期一致,cron默认读取服务器本地时间,时区错误会导致执行时间偏移
内容的提问来源于stack exchange,提问作者shiva ask
相关产品推荐
相关产品推荐

