AWS EC2实例Crontab定时任务未执行问题求助
解决crontab任务不执行的问题
针对你的情况,手动运行脚本正常但crontab未执行,按以下步骤排查:
确认cron服务运行状态
先检查EC2实例上的crond服务是否在运行:systemctl status crond如果服务未启动,执行以下命令启动并设置开机自启:
systemctl start crond systemctl enable crond启用crontab的环境变量配置
你当前crontab里的SHELL和PATH配置处于注释状态,cron默认的环境变量PATH非常有限,可能导致脚本里的命令找不到。把这两行的注释符号#去掉:SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root这样cron会使用指定的shell和完整PATH执行任务。
确保脚本有执行权限
虽然你用/bin/bash直接调用脚本,但给脚本加上执行权限能避免潜在的权限问题:chmod +x /home/ec2-user/info.sh检查脚本内的路径引用
cron执行任务时的工作目录是用户的家目录(比如/home/ec2-user),如果你的脚本里用了相对路径(比如./output.log),手动运行时的工作目录可能和cron不同,导致找不到文件。把脚本里所有文件路径改成绝对路径,比如/home/ec2-user/output.log。查看cron日志排查错误
通过日志可以直接看到任务执行的状态和错误信息:grep CRON /var/log/messages # 或者用journalctl查看更详细的日志 journalctl -u crond日志里会明确显示任务是否触发,以及失败的原因(比如权限不足、命令不存在等)。
修正任务执行时间
你需要每5分钟执行一次,但当前配置的是*/1 * * * *(每分钟执行),改成*/5 * * * *就能实现每5分钟执行一次的需求。
内容的提问来源于stack exchange,提问作者VijayNannapaneni
相关产品推荐
相关产品推荐

