linux计划任务(crontab)不能执行原因分析

crontab是后台服务(deamon) crond的任务列表,将你要执行的任务放在contab中,要编辑它使用:

contab -e

我们常常发现我们的任务没有被执行,那是什么原因呢?

 

  • crond服务未运行

使用命令:

service crond status

来检测服务是否运行。

 

crontab不是Linux内核的功能,而是依赖一个crond服务,这个服务可以启动当然也可以停止。如果停止了就无法执行任何定时任务了,

使用命令:

 

sudo service crond start

如果提示crond命令不存在,可能被误删除了,CentOS下可以通过这个命令重新安装:

sudo yum -y install crontabs

 

  • 权限问题

比如:脚本没有x执行权限,解决方法:

增加执行权限,或者用bash abc.sh的方法执行

 

  • 路径问题

有的命令在shell中执行正常,但是在crontab执行却总是失败。有可能是因为crontab使用的sh未正确识别路径,比如:以root身份登录shell后执行一个/root/test.sh,只要执行

./test.sh

就可以了。但是在crontab中,就会找不到这个脚本,比如写完整:

/root/test.sh

 

  • 时差不一致

因为服务器与客户端时差问题,所以crontab的时间以服务器时间为准,我就属于这种原因。

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *