​ linux系统下调度数据库类型资源库中的kettle job

http://www.cnblogs.com/wxjnew/p/3418209.html

linux系统下调度数据库类型资源库中的kettle job

已经存在kettle的一个资源库enfo,在目录/works/wxj下面有一个job (testmailsuccess.kjb)如何实现手工在kettle外部执行此job和让系统每天定时的调用此job.


进入linux系统,切换至kettle所属用户(确保kettle已经在linux系统上配置OK

配置OK体现:

A:进入目录执行 ./kitchen.sh 有帮助信息

11162100-548e14d49ec743cebe3d87829c56a9e

B:kettle所属用户(我这里kettle在cognos用户里面配置的)根目录下有.kettle文件夹(和windows内容一样)

11162328-c0d6da17ce6a402389cb8133fa29235

(1)先说手工调用:

 和windows系统一样,我们需要进入到data-integration目录下面执行命令

 ./kitchen.sh -rep enfo -user wxj -pass wxj1988 -dir /works/wxj -job testmailsuccess -level=basic>>/home/cognos/kettlelog/testmailsuccess.log

11162654-57820b05ced0405aa833837d2d48cb2

看数据

11162734-4b36eb239bdf40fda5e75aa5a17fda4

数据已经执行,日志已生成到指定目录

11163008-7d6d18f3b4ca4e988be58334a5dee27

(2):系统调度kettle job

利用linux系统的调度命令,crontab 来实现对kettle job的调度,就是把手工执行的内容写入到一个shell命令行里面,让crontab自动的调用。

这里是test.sh内容如下:

#!/bin/sh
export JAVA_HOME=/usr/java/jre1.6.0_20
cd /home/cognos/pdi-ce-4.2.0-stable/data-integration
./kitchen.sh -rep enfo -user wxj -pass wxj1988 -dir /works/wxj -job testmailsuccess -level=basic>>/home/cognos/kettlelog/testmailsuccess.log

目录在:/home/cognos/kettlejob/test.sh

进入目录执行./test.sh

11163712-79adc9b49dbb45c5b661529270f8493

这个错误大家都不陌生了吧,给kettlejob文件夹下面的所有.sh文件赋执行权

11163847-76b3e78633664e62bc88ac9ef89bd4f

赋权成功,再次执行./test.sh

11164021-dd3150577d72439e8d9cf5e5f4d2b5c

这次不是权限的问题,于是带着问题进入internet寻找答案,觅得

http://blog.csdn.net/hen_man/article/details/6939000 thanks  解决方案

11164158-bfda58b4d81d4db59d8b8728fcea5ed

从上面可以看出,需要在编辑模式下改变test.sh文件的格式,操作如下

11164424-4e145a5c3e3c4e239f4359204ce8898

按一下esc 输入 :set ff?查看现在文件的类型

11165222-3e809e5e56c4412a9b26c6615fde570

结果为

11165302-54dc88a37693453fa106b94068a9a6f

输入 :set ff=unix 修改类型

11165323-6962a93eec594e78b30878f30523a7a

回车输入:wq!保存退出

11165355-b5f2a89d26db46fab0a3218d29fb82e

再次查看文件类型

11165446-a8dc565f054148f093c508402b16193

OK 已经修改过来

回到kettlejob目录,执行./test.sh

11165617-296a9d08a2c84332974de1b6b27109e


从上面可以看出手工执行test.sh执行成功。

下面把test.sh写入到cognos用户下的crontab任务中

回到cognos根目录下,crontab -e 写入一下内容

11170332-2d3c51bd885c45d4b17daddd006d242

按一下 esc 然后:wq!保存退出

再次查看crontab 调度任务

11170430-c8ff7dbd39ea4e83a73125bdf48ccee

从上面可以看出已经部署OK

已经到了 17:5查看执行效果

11170551-c8684364548d41219c96c13c26c9ccb


从数据和Email可以看出,调度已执行,OK,部署完成!


你可能感兴趣的:(Kettle)