我在/etc/crontab里面写了这么一段:
00 20 * * * root ant -file /home/ant/antcvs/build.xml
用来自动运行ant命令,可是没有反应,第二天一看,并没有运行,请问这是为什么?
ps:我已经把路径设定成为环境变量了,平时执行的时候也是直接输入“ant”的,没有问题啊。
这是/ var/log/cron中的日志信息:
Oct 11 20:00:00 simple CROND[11316]: (root) CMD (ant -file /home/ant/antcvs/build.xml)
如果用命令行去执行该命令则有效:ant -file /home/ant/antcvs/build.xml
接下去,我用crontab -e 去编辑,内容如下,
00 20 * * * ant -file /home/ant/antcvs/build.xml
还是一样起不了效果,
以上两种方法我都重启了cron,迷茫了,问大侠解决!
|
首先,lz需要弄明白一个问题:是crontab没执行,还是执行出错了?
建议lz采纳上面同志的意见和建议,增加重定向日志,并且使用全路径调用ant命令。
另外,lz可以在/etc/cron.d/下面搞个文件,然后将其own改为root:root,这样也可以执行的,比较规范点,呵呵~~~
|
把ant加上路径 并把执行的信息或者错误保存到/var/log/ant.log里 到时候看看
00 20 * * * root /path/ant -file /home/ant/antcvs/build.xml > /var/log/ant.log 2>&1
|
ant -file /home/ant/antcvs/build.xml
ant加路径
|
crontab 是几乎不只是环境变量的,所以你要在执行之前先export路径,或在ant前加上绝对路径
|
另外 你的ant执行 依赖别的什么环境变量吗?
|
把你的ant命令封装为一个shell脚本,比如1.sh
. ~/.profile
/path/ant -file /home/ant/antcvs/build.xml
这样再通过cron调度试试看
|
问你的ant是不是依赖于别的你设置的环境变量 你又不说!
比如tomcat的情况 会依赖于JDK的环境变量 如果不export就启动不成功!
|
把env都拷贝出来,额阿...