linux 之crontab 定时执行失败原因总结

今天写了一个nginx日志分割的简单脚本,发现手动执行脚本可以将日志成功分割,但是使用crontab定时任务就会执行失败。

然后自己写了一个只有一句话的shell脚本,发现一样的问题,然后就开始根据问题找原因:

1:是不是crontab的权限不对。然后使用了 ls /etc/init.d/crontab -lh 查看权限。发现用户组的对的,root组。

2:网上说很大可能的原因是环境变量的问题,然后,自己输出了PATH的所有环境变量,然后加入到脚本开头第二行的位置,依然不行。

3:查看crontab的执行状态。/etc/init.d/cron status 发现定时在执行。

4:定时不使用脚本,直接在定时后面直接写命令。发现是可以执行的,这就有点怪了。

手动执行脚本没问题,定时执行脚本有问题。定时执行脚本命令没问题。这是哪里出了问题呢?这说明脚本的白那些是没有问题的,问题处在了crontab定时上,然后加了环境变量的的文件绝对路径,抱着试一试的心态,结果真的成功了。具体操作如下:

*/1 * * * * /etc/profile /bin/sh path/test.sh

/etc/profile是加的环境变量的文件。

posted @ 2020-05-25 10:23  first_semon  阅读(1289)  评论(0编辑  收藏  举报