crontab执行脚本失败,手动执行成功问题

您所在的位置:网站首页 shell脚本显示执行结果不正确怎么办 crontab执行脚本失败,手动执行成功问题

crontab执行脚本失败,手动执行成功问题

2024-07-11 06:43| 来源: 网络整理| 查看: 265

今天在使用Linux中的crontab的时候,遇到过手动执行脚本成功,但是通过crontab做成定时任务的时候却无法执行的问题。 首先在一开始使用的时候呢就遇到了这么一个问题: 在这里插入图片描述 说root没有crontab。 其实要解决这个问题非常简单,只需要给root创建一个crontab就可以了。 执行crontab -e 按 Esc 按shift+:输入wq 回车。 这样就相当于给root创建了一个空的crontab了。 其实也就是相当于在/var/spool/cron/路径下给创建了一个root的空文件。 再次使用crontab -l 查看root的定时任务时,就不会报错了。 在这里插入图片描述 之后呢就通过crontab -e 命令进行编辑,给文件里面加上定时任务。

在这里插入图片描述 我这个呢是每天晚上11:30分,定时自动跑我的接口自动化脚本,但是呢却没有执行脚本。这个脚本手动执行是成功的,那么问题出在哪里呢。 我用命令:service crond restart从新启动过crond,还是无法执行。 没办法只能去找crond的日志看看了,日志存放在:/var/log/cron文件 发现cron的日志内并没有报错。这是怎么回事呢?? 这说明crontab设置上并没有错误,而且也能定时执行脚本,问题是脚本没有执行成功。 之后我通过账户的邮件日志找到了原因:邮件日志路径:/var/spool/mail/root文件。 在这里插入图片描述 提示我没有ant这个命令。 我可以确定的是ant我是明确有配置过环境变量的,不然也不可能手动执行成功了。 那么问题在哪呢? 原来是因为 crontab 的 环境的问题,在 crontab 自动执行时,它不会加载 PATH 全部路径,我们必须在脚本里面声明出来。所以把ant的环境变量加到shell脚本中就可以了。 在这里插入图片描述 再次运行定时任务,发现能成功找到ant命令并运行定时任务了。 在这里插入图片描述 至此,crontab定时任务完美运行。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3