You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amazon Linux EC2实例中Cron定时任务未执行问题求助

Amazon Linux EC2 Cron任务未执行且无日志的排查方案

1. 确认Cron服务状态

  • 执行systemctl status crond检查服务是否运行,若未启动,执行systemctl start crond启动服务,再用systemctl enable crond设置开机自启。

2. 验证任务命令与脚本可用性

  • 手动执行Cron中的完整命令:/usr/bin/python3 /home/ec2-user/set_access_token.py > /home/ec2-user/access_token_logs.txt,排查脚本本身是否存在报错(比如依赖缺失、相对路径问题)。
  • 检查脚本权限:执行ls -l /home/ec2-user/set_access_token.py,确保ec2-user拥有执行权限,无权限则执行chmod +x /home/ec2-user/set_access_token.py。
  • 注意:Cron执行时的环境变量与终端环境不同,脚本内所有文件、命令调用务必使用绝对路径。

3. 开启Cron日志记录

Amazon Linux默认未启用Cron日志,需手动配置:

  • 编辑rsyslog配置文件:vi /etc/rsyslog.d/cron.conf,添加或确认以下内容:
cron.* /var/log/cron.log
  • 重启rsyslog服务:systemctl restart rsyslog,后续Cron的执行日志会输出到/var/log/cron.log,便于排查任务触发情况。

4. 修正日志重定向规则

当前命令仅捕获标准输出,错误信息会丢失,修改为同时捕获标准输出和错误输出:

51 7 * * * /usr/bin/python3 /home/ec2-user/set_access_token.py >> /home/ec2-user/access_token_logs.txt 2>&1

修改后保存Cron任务,等待下次执行后查看日志中的错误信息。

5. 确认系统时区设置

  • 执行date -u验证系统时间是否为UTC,若时区不符,执行timedatectl set-timezone UTC调整为UTC时区,确保Cron任务时间与系统时间一致。

内容的提问来源于stack exchange,提问作者Anuj Panchal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 11:02:40