Crontab中指定时间任务未触发的问题

在系统中配置了一个定期清理docer仓库过期镜像的任务:

$ crontab -l
# 每周日凌晨2点(UTC)
00 02 * * 2  /root/nexus_cleanup.sh   >/dev/null 2>&1

然后,数周后查看任务日志时,却发现该任务并未被执行。于是,修改为:18 02 * * * /root/nexus_cleanup.sh >/dev/null 2>&1 ,结果发现,在指定时间,该任务仍未触发。但如果改为每分钟一次:*/1 * * * * ,则是可以触发的。
接下来,检查cron的配置。

cat  /etc/cron.d/0hourly  
# Run the hourly jobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
01 * * * * root run-parts /etc/cron.hourly

以上文件说明:只有 01 分被系统级 cron 放行,00 分(整点)没有被任何一行允许
因此,要指定在00-59的任务时间执行,需要添加以下文件:

$ tee /etc/cron.d/00-59-pass <<'EOF'
# 放行 00-59 任意分钟
* * * * * root /bin/true >/dev/null 2>&1
EOF
systemctl restart crond

当然,也可以直接修改/etc/cron.d/0hourly文件达到相同目的。
另外,查看cron任务日志:

$ tail /var/log/cron
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容