定时任务我们会用到crontab,如果自己服务器上没安装,自行安装一下,其定时参数通过百度或帮助自行学习,这里只介绍kettle程序在Linux上做定时任务
我的环境
Centos6.9
Kettle需要Jdk,所以需要有JDK并配置环境变量
元数据存储在oracle的存储库里
踩过的坑
无法链接存储库:解决方法将repository.xml放到与pan.sh等sh的同目录下。
定时任务
1,创建目录
在opt下创建存放sh文件的目录kettleShs
在opt下创建存放log文件的目录kettleLogs
2,创建定时执行sh文件
直接上例子,以执行转换为例
#!/bin/bash
export JAVA_HOME=/opt/jdk1.8.0_191
export JRE_HOME=/opt/jdk1.8.0_191/bin
export PATH=$PATH:$JAVA_HOME/bin
currTime=$(date "+%Y-%m-%d-%H-%M-%S")
jobName="o2dh-"
logName=$jobName${currTime}.log
/opt/pdi-ce-7.1.0.0-12/data-integration/pan.sh -rep=localOrg -user=wst -pass=wst -dir=/99RS/O2DH -trans=3 -level=Detailed -logfile=/opt/kettleLogs/$logName
上面的环境变量必须要加,不然不能调起转换和作业。
下面的currTime是系统时间到秒和一个字符串拼接成日志名称
最后一行是调用转换的命令行,具体参数通过帮助就可以了解到。
3,编辑定时计划
如果是用户级别的定时计划就编辑vim /etc/crontab,记得在时间参数和命令行中间加上用户
系统级别的定时计划命令是 crontab -e,添加定时任务,
05 22 * * * /opt/kettleShs/o2dh.sh>/opt/kettleLogs/o2dh.log
我这里的意思是每天22点03分执行o2dh.sh,并写一个日志。
4,重启crontab服务
#centos
service crond restart
#ubuntu
service cron restart
OK ,等待计划执行。