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

今天在使用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定时任务完美运行。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值