<<<<<<< .mine =======
当前位置: 首页 > SEO > crontab任务不执行的解决办法

crontab任务不执行的解决办法

时间:2012-01-16 21:48:32
Linux中,crontab的使用大家是有目共睹的,能方便的让您的调度任务程序自动的执行,它在好多使用场合作用还是挺重要的,实现了多任务程序的自动化执行。crontab的命令格式如下:

crontab用法

采用命令行crontab -l可以查看已经设置好的cron任务配置情况:

crontab查看命令

而使用crontab -e可以重新编辑cron任务,进入之后按照vi命令方式进行编辑和保存即可,当看到以下提示时:

crontab更新提示

说明新的crontab命令已经生效。

但是,在某些Linux发行版中,配置在crontab中的自动任务却不能执行,这个是为什么呢?之前我一直很纳闷为什么不能执行,这个问题实在是让我困惑了好久。今天我下定决心,决定非要解决一下这个问题,发现还真是找到了问题的关键所在。

下面先看一段代码:

root@ubuntu:/etc/job# cat startJob.sh
#!/bin/bash
java -jar /etc/job/Keywordjob.jar  >> info.log &

直接在目录中执行./startJob.sh是可以执行的,但是配置到crontab中就是不行。通过搜索别人的解决方法,我找到了问题的原因,那就是,在crontab的执行环境变量中,没有相应用户设置的环境变量,你需要手动设置一下环境变量,才能让它生效。于是,我将以上代码改成:

#!/bin/bash
. /etc/profile
java -jar /etc/job/Keywordjob.jar  >> info.log &

将用户设置过的java环境变量通过命令“. /etc/profile”激活后,java命令就可以执行了。

同样的,以下重新启动Tomcat的命令行设置在crontab中也是不能执行的:

root@ubuntu:/etc/job# cat restartTomcat.sh
#!/bin/bash
echo 'Starting tomcat at : '>> info.log
echo `date +%Y-%m-%d-%H:%M:%S` >>info.log
/etc/apache-tomcat-6.0.33/bin/startup.sh >> info.log

在命令行“/etc/apache-tomcat-6.0.33/bin/startup.sh >> info.log”之上加一句“. /etc/profile”后,问题同样得到解决。

以上是本人碰到crontab任务不能执行的解决方法,希望对大家有所帮助。

相关文章

分布式系统简介

分布式系统 一个分布式系统,是一系列独立实体配合解决一个不能单独解决的问题。分布式系统在宇宙开始之初就已经存在了。...

新年之际 一个“/”号引发的301思考

今天关于301跳转问题,给大家一个个小小的提醒,直接看图:    此前对于在一篇《SEO优化需尽善尽美—站内...

总结网站关键字布局优化操作技巧以及排名规律

2011年是繁忙充实的一年,是我在文军信息SEO部门的第一个念头,回首2011年,认真总结自我,找寻存在的问题和差距,是...

从做法中归纳思想与从思想中行进做法

学习SEO,是从lucky教的做法中开始的。这种做法,始于她对SEO中最基本的两点内容与链接的认知。而这种认知,具体来说...

上海文军信息技术有限公司2011年度年会纪实

时光飞逝,上海文军信息技术有限公司成立以来的第三个年会来了。和去年相比,虽然人数上没有太大的变化,但是整个公司的机构发生...
沪ICP备10034044号-12
400-685-0732
400-685-0732 在线咨询