crontab 不执行的三个常见原因

举报
yd_249372318 发表于 2026/11/09 00:57:15 2026/11/09
【摘要】 crontab 不执行的三类原因:PATH 环境变量缺失、% 未转义被截断、日志没处看,附排查顺序。

定时任务加了却从不跑,先别怀疑 cron 本身,十有八九是这三个坑。

一是环境变量。cron 的 PATH 默认只有 /usr/bin:/bin,你自己装的命令(比如 /usr/local/bin 下的)它根本找不到。脚本里用绝对路径,或者在 crontab 顶部加一行 PATH=,比到处找原因快得多。

二是百分号。crontab 里 % 有特殊含义,会被当成分行符处理。命令里带 % 的(比如 date +%F)必须写成 \%,否则你的参数会被腰斩。这是搜索不到答案的经典坑。

三是日志。cron 跑没跑、报了什么,得看 /var/log/syslog(Ubuntu)或 /var/log/cron(CentOS)。再给自己留一手:命令后面统一接 >> /var/log/myjob.log 2>&1,出问题翻日志比干猜强。

改完 crontab 不用重启服务,保存即生效。下次不跑,按这三条挨个过,比瞎猜省时间。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。