linux 之crontab 定时执行失败缘由总结

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

而后本身写了一个只有一句话的shell脚本,发现同样的问题,而后就开始根据问题找缘由:shell

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

2:网上说很大可能的缘由是环境变量的问题,而后,本身输出了PATH的全部环境变量,而后加入到脚本开头第二行的位置,依然不行。日志

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

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

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

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

/etc/profile是加的环境变量的文件。定时任务

相关文章
相关标签/搜索