在Linux下设置Kettle的定时任务

其实在这里写之前,请自己将kettle与适合的JDK安装好(

kettle :安装很简单只是将下载好的文件上传至对应的地方,如果是压缩包,解压即可。
JDK安装: https://www.cnblogs.com/yuezc/p/12102638.html),下面的只是做定时任务的设置。

一、【创建脚本文件】

注意:在创建完脚本之后一定记得赋予执行权限(chmod +x test.sh),否则不会运行该脚本。

1、创建脚本文件目录 kettleShell 和日志文件 kettleLogs

[root@localhost ~]# cd /usr/local/
[root@localhost local]#  mkdir  kettleShell  kettleLogs

2、在到目录kettleShell文件下创建test.sh脚本

[root@localhost local]# cd kettleShell/
[root@localhost kettleShell]# ls
test.sh  -- 文件中其实已经存在了(如果没有则在这个目录下,输入: touch test.sh 即可)
[root@localhost kettleShell]# cat test.sh  -- cat 是查看文件内容的命令,脚本内容如下即可

#!/bin/bash
/* source /etc/profile  // 这个是有人这模做的,但我没成功,可能是路径问题吧。后面我改成为如下:
export是JDK的配置属性,后面实践过程总,其实原因是配置的信息没有紧靠左边而已
*/

  export JAVA_HOME=/usr/local/jdk/jdk1.7.0_80
  export PATH=$JAVA_HOME/bin:$PATH
  export CLASSPATH=.:/$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

TIME=$(date "+%Y%m%d")
/usr/local/kettle/data-integration/kitchen.sh -file=/usr/local/路径/boss.kjb >>/usr/local/kettleLogs/log$TIME.log

说明:

/usr/local/kettle/data-integration/kitchen.sh,这个是kettle的工具路径;

-file=/usr/local/biemsj/kettle_data/boss.kjb 是运行转换文件的路径;

/usr/local/kettleLogs/log$TIME.log 是转换过程的日志。

然后在,etc下的profile文件中添加如下命令,单独红色的,这个是kettle的安装路径:profile文件编辑完成后,运行命令: source /etc/profile  

# 配置.kettle目录
export KETTLE_HOME=/usr/local/kettle/sdrs_tools/data-integration
# 配置JDK环境
export JAVA_HOME=/usr/local/jdk/jdk1.7.0_80
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:/$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
unset -f pathmunge
 CATALINA_BASE=/usr/local/tomcat70103
 CATALINA_HOME=/usr/local/tomcat70103
 PATH=$PATH:$CATALINA_BASE/bin
export PATH CATALINA_BASE

这里需要用到vim 的命令。

编辑文件:vim test.sh

[root@localhost kettleShell]# vim test.sh

按回车进入这个文件编辑状态,在按 I 键,即可编辑。具体的操作需要自行学习。

将内容编辑完成。退出时,按Esc 键,再按 :wq或 :wq! 即可。

二、【编写定时时间】
-- 在crontab -e中编辑定时时间

* 2 * * * /usr/local/kettleShell/test.sh   //每天凌晨2点开始运行。

三、【重启crond服务】
          键入“cd /etc/init.d”,进入该目录
          键入“./crond restart”,重启crond服务

情况1:当linux发行的版本没有service这个命令时候,用如下命令进行停止启动:

停止服务:[root@centos6 /]# /etc/init.d/crond stop

启动服务:[root@centos6 /]# /etc/init.d/crond start

情况2:如果出现错误提示:Redirecting to /bin/systemctl start crond.service,则需要更换为 systemctl start crond 启动。

[root@localhost ~]# service crond start
Redirecting to /bin/systemctl start crond.service
[root@localhost ~]# systemctl start crond
[root@localhost ~]#
原文地址:https://www.cnblogs.com/yuezc/p/12101089.html