读书人

linux上使用crond定时执行kettle的job

发布时间: 2012-12-27 10:17:10 作者: rapoo

linux下使用crond定时执行kettle的job

linux下使用crond定时执行kettle的job

由于第一次碰linux,对其不是很了解,导致这个问题困扰了我近一个月的时间,现在终于解决了,分享给大家。
?
首先,安装jre,配置java环境变量
??
(一)???下载jre-6u23-linux-x64.bin

下载地址:http://cds-esd.sun.com/ESD6/JSCDL/jdk/6u23-b05/jre-6u23-linux-x64.bin?AuthParam=1292401739_2abc6c61c57eec5b100fe647086d1f33&TicketId=CJ0nhpzNkjGGwpbkW40LAgA%3D&GroupName=CDS&FilePath=/ESD6/JSCDL/jdk/6u23-b05/jre-6u23-linux-x64.bin&File=jre-6u23-linux-x64.bin

(二)???安装jre-6u23-linux-x64.bin

??????将jre-6u23-linux-x64.bin上传到linux服务器

1.?????在终端上,键入:
su

2.?????输入超级用户口令。

3.?????切换到所需的安装目录。类型:
cd <目录路径名>
例如,要在?/usr/java/?目录中安装软件,请键入:
cd /usr/java/

关于超级用户访问权限的说明:要将?JRE?安装在系统级位置(例如?/usr/local),必须以超级用户身份登录,从而获得必要的权限。如果您不具有超级用户访问权限,请将?JRE?安装在您的主目录中,或者安装在您具有写入权限的子目录中。

4.?????将您下载的文件的权限更改为可执行。类型:
chmod a+x jre-6u23-linux-x64.bin

5.??????启动安装过程。键入:
./ jre-6u23-linux-x64.bin

此时将显示二进制许可协议。通读许可协议。按空格键显示下一页。读完许可协议后,输入?yes?继续安装(此步骤可能直接跳过)

7.?????JRE?安装在其自身的目录中。在本例中,它将安装在?/usr/java/ jre1.6.0_23目录中。当安装完成时,您将看到?Done(完成)字样。

?(三)???配置java环境变量

1.?????命令行键入“cd /etc”进入etc目录

2.?????命令行键入“vi profile”打开profile文件

3.?????敲击键盘ctrl+F到文件末尾

4.?????在末尾处,即第一个~的地方,敲击键盘将以下内容输入到文件

JAVA_HOME=/usr/java/jre1.6.0_23

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME

export PATH

export CLASSPATH

???? 5.?????键盘敲击exc,命令行键入“:wq”,保存文件;

???? 6.?????重新登录linux,在命令行键入“java”,如果出现帮助信息则表示配置成功。


然后,部署kettle

???????
1.?????????将pdi-ce-4.1.0-stable.zip上传到linux服务器

2.?????????使用unzip命令解压pdi-ce-4.1.0-stable.zip
unzip pdi-ce-4.1.0-stable.zip -d "/mnt/kettle"

3.?????????赋予解压目录下.sh文件的执行权力

chmod +x *.sh

4.?????????进入解压目录,键入“./kitchen.sh”回车,如果有帮助信息则表示kettle环境部署成功


※(重点)接着,编写执行kettle任务的shell脚本

创建test.sh,将以下内容复制粘贴到里面,然后键入“chmod +x?/mnt/kettle/*.sh”,赋予test.sh执行权限。

linux上使用crond定时执行kettle的jobexport?JAVA_HOME=/usr/java/jre1.6.0_23
linux上使用crond定时执行kettle的jobexport?PATH=$JAVA_HOME/bin:$PATH
linux上使用crond定时执行kettle的jobexport?CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
linux上使用crond定时执行kettle的job/mnt/kettle/data-integration/kitchen.sh?-file=/mnt/kettle/test.kjb?>?/mnt/kettle/display.txtlinux上使用crond定时执行kettle的job


说明:
前3行,设置java环境变量的语句必不可少,
因为crond是个守护进程,它不归属于任何用户,虽然之前以root身份配置了java的环境变量,但是crond一样找不到java命令,
所以,当crond执行kettle任务时,需要动态设置java环境变量,crond才能找到java命令。


最后,使用crontab命令添加定时任务

?????? 1.在终端上,键入“crontab -e”,进入定时任务文件
?????? 2.键入“a”,对文件进行编辑
????????? 输入如下内容:?linux上使用crond定时执行kettle的job23?11?10?02?*?/mnt/kettle/test.sh??????? 其中 23为分钟,11为小时,10为日,02为月,*为星期几,crontab命令的使用这里不再赘述。
???????3.键盘敲击exc,终端键入“:wq”,保存文件
?????? 4.重启crond服务
????????? 键入“cd /etc/init.d”,进入该目录
????????? 键入“./crond restart”,重启crond服务
????? 5.等待执行结果
????? 6.执行成功,oh..nice!?
转自:http://www.blogjava.net/orangehf/archive/2011/02/11/344045.html

读书人网 >UNIXLINUX

热点推荐