linux下使用cron无法定时执行kettle任务[已解决]
本帖最后由 jtootl 于 2011-02-11 14:52 编辑问题描述:
在linux下,使用cron定时执行其他命令,如echo一个字符串到一个文件,没有任何问题。
但定时执行kettle的kitchen.sh时就出问题啦,如果直接在命令行里使用kettle的kitchen.sh执行任务就完全正常。
我的操作步骤如下:
1.在命令行键入crontab -e
2.写入如下命令:
42 10 26 01 * /mnt/kettle/run_job.sh
保存,重启crond服务。
/mnt/kettle/run_job.sh的内容为
/mnt/kettle/kettle_3.2/kitchen.sh -file=/mnt/kettle/job/xxx.kjb -level=Basic > /mnt/kettle/display.log
3.等待
4.查看结果
/mnt/kettle/display.log文件生成,但是里面没有任何输出,而且xxx.kjb的任务没有执行效果
于是我就继续调试,
我的调试步骤如下:
1.编辑在/mnt/kettle/kettle_3.2/kitchen.sh,
即vi /mnt/kettle/kettle_3.2/kitchen.sh
在每个主要代码块后添加echo "xxx",打印一些内容,看是否是kitchen.sh内代码的问题
2.添加上面所说的定时任务
3.等待
4.查看结果
/mnt/kettle/display.log文件生成,里面有输出,就是我在kitchen.sh里添加的那些echo,一个不少,但是xxx.kjb的任务依旧没有执行效果
5.查看kettle自己的执行错误日志
错误日志大小为0,没有任何错误
请问各位大大,谁遇到过这个情况,指点下小弟,谢谢啦!
PS:我使用的是kettle 3.2版本
-------------补充描述
根据4楼ly215197 的建议,我在添加完定时任务后,给.sh文件重新赋予了执行权限
这是crontab -e的截图
保存完定时任务,我重启crond服务,重新赋予.sh执行权限,如图
根据5楼shileiadmin (Lei) 的建议,我把我的job里的路径换成了绝对路径,如图
至于“要用到的环境变量用source引入到环境中来”,我不会改。
做了这些改动以后,结果依然如前,问题没有解决。
请大大们继续指点!
------------解决方案
linux下使用crond定时执行kettle的job
http://www.blogjava.net/orangehf/archive/2011/02/11/344045.html -log=........可以吗 ! -log=........可以吗 !
taojie2000 发表于 2011-01-27 11:21 http://linux.chinaunix.net/bbs/images/common/back.gif
run_job.sh里,添加了-logfile=xxxxx
/mnt/oradata/kettle/kettle_3.2/kitchen.sh -job=/mnt/oradata/kettle/Job/test_cron_job.kjb -level=Detailed -logfile=/mnt/oradata/kettle/run_job_log.log
没有logfile生成,也没执行job。。
继续求救!~~ crontab -e后重新赋予执行权限在试下呢? 回复 1# jtootl
检查JOB所涉及到的文件,所有的文件写全路径,要用到的环境变量用source引入到环境中来。 crontab -e后重新赋予执行权限在试下呢?
ly215197 发表于 2011-01-27 14:57 http://linux.chinaunix.net/bbs/images/common/back.gif
赋予run_job.sh执行权限吗? 回复jtootl
检查JOB所涉及到的文件,所有的文件写全路径,要用到的环境变量用source引入到环境 ...
shileiadmin 发表于 2011-01-27 15:35 http://linux.chinaunix.net/bbs/images/common/back.gif
“要用到的环境变量用source引入到环境”,如何用source。。望指教 请看楼主补充描述! 手动执行那个脚本,可以执行,可以生成日志吗? 手动执行那个脚本,可以执行,可以生成日志吗?
beyondfly 发表于 2011-01-28 10:37 http://linux.chinaunix.net/bbs/images/common/back.gif
可以生成日志,一切正常。
页:
[1]
2