已經存在kettle的一個資源庫enfo,在目錄/works/wxj下面有一個job (testmailsuccess.kjb)如何實現手工在kettle外部執行此job和讓系統每天定時的調用此job.
進入linux系統,切換至kettle所屬用戶(確保kettle已經在linux系統上配置OK)
配置OK體現:
A:進入目錄執行 ./kitchen.sh 有幫助信息

B:kettle所屬用戶(我這里kettle在cognos用戶里面配置的)根目錄下有.kettle文件夾(和windows內容一樣)

(1)先說手工調用:
和windows系統一樣,我們需要進入到data-integration目錄下面執行命令
./kitchen.sh -rep enfo -user wxj -pass wxj1988 -dir /works/wxj -job testmailsuccess -level=basic>>/home/cognos/kettlelog/testmailsuccess.log

看數據

數據已經執行,日志已生成到指定目錄

(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

這個錯誤大家都不陌生了吧,給kettlejob文件夾下面的所有.sh文件賦執行權

賦權成功,再次執行./test.sh

這次不是權限的問題,於是帶着問題進入internet尋找答案,覓得
http://blog.csdn.net/hen_man/article/details/6939000 thanks 解決方案

從上面可以看出,需要在編輯模式下改變test.sh文件的格式,操作如下

按一下esc 輸入 :set ff?查看現在文件的類型

結果為

輸入 :set ff=unix 修改類型

回車輸入:wq!保存退出

再次查看文件類型

OK 已經修改過來
回到kettlejob目錄,執行./test.sh

從上面可以看出手工執行test.sh執行成功。
下面把test.sh寫入到cognos用戶下的crontab任務中
回到cognos根目錄下,crontab -e 寫入一下內容

按一下 esc 然后:wq!保存退出
再次查看crontab 調度任務

從上面可以看出已經部署OK
已經到了 17:5查看執行效果

從數據和Email可以看出,調度已執行,OK,部署完成!
