温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Cron Job为何不执行

发布时间:2026-10-24 14:28:27 来源:亿速云 阅读:86 作者:小樊 栏目:系统运维

Cron Job 不执行是常见问题,原因通常集中在配置、环境、权限、路径、日志这几类。下面按「排查顺序」给你一套清单:


1. 先确认 Cron 服务是否在运行

# Linux
systemctl status cron        # Debian/Ubuntu
systemctl status crond       # CentOS/RHEL

如果没运行:

systemctl start cron
systemctl enable cron

2. 检查 Cron 表达式是否正确

常见错误:

  • 分钟写成了小时
  • 用了不支持的语法(如 @daily 在某些老系统不支持)
  • 时间写反了(如 0 0 * * * 是每天 0 点)

可用工具校验: https://crontab.guru


3. 查看 Cron 日志(最关键)

# Debian/Ubuntu
grep CRON /var/log/syslog

# CentOS/RHEL
grep CRON /var/log/cron
  • 有记录但没效果 → 脚本或环境问题
  • 完全没记录 → cron 没跑或服务挂了

4. 环境变量问题(最常见坑)

Cron 的 PATH 非常精简:

PATH=/usr/bin:/bin

✅ 正确写法:

* * * * * /usr/bin/python3 /home/user/script.py

❌ 错误写法:

* * * * * python3 script.py

建议在脚本里:

#!/bin/bash
source /etc/profile

5. 相对路径问题

Cron 的工作目录通常是 $HOME 或 /

❌ 错误:

* * * * * ./run.sh

✅ 正确:

* * * * * /home/user/run.sh

6. 权限问题

  • 脚本没执行权限
chmod +x script.sh
  • 用户 cron 写错地方
crontab -l        # 当前用户
crontab -u user -l

7. 输出没有重定向(被丢弃)

Cron 会把输出发给 mail,但很多系统没配 mail

建议:

* * * * * /home/user/script.sh >> /home/user/cron.log 2>&1

8. 特殊字符未转义

如 % 在 cron 里有特殊含义:

# 错误
* * * * * date +%Y%m%d

# 正确
* * * * * date '+\%Y\%m\%d'

9. Docker / K8s CronJob(如果你指的是这个)

常见问题:

  • 容器启动即退出
  • 时区不对
  • 资源限制
  • restartPolicy 错误

可贴出 YAML 我帮你直接看。


快速自检清单 ✅

  • [ ] cron 服务在运行
  • [ ] 表达式正确
  • [ ] 使用绝对路径
  • [ ] 脚本有执行权限
  • [ ] 有日志输出
  • [ ] 环境变量已处理

如果你愿意,可以把:

  • 操作系统
  • cron 表达式
  • 脚本内容(或命令)
  • 日志报错

贴出来,我可以直接帮你定位。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手