首页 > 代码库 > Linux下crontab命令添加Kettle作业定时任务

Linux下crontab命令添加Kettle作业定时任务

1. 确保作业 $KETTLE_HOME/kitchen.sh -file=/data1/testdata/testkjb.kjb 或转换 $KETTLE_HOME/pan.sh -file=/data1/testdata/testktr.ktr 能在Linux下正常执行

    此步骤在JDK配置正确,(Ps.可选择配置Kettle的环境变量,主要是定位程序所在主目录,不用每次引用绝对路径),

    当前用户拥有对应*.sh文件有执行权限的情况下,很少有其它问题。

2.编写执行Kettle作业或转换的execron.sh脚本,此处特别要注意红色标注部分,Shell脚本里面要执行一下刷新当前系统环境变量的操作,

   因为crontab命令执行脚本时不会读取当前的环境变量

   #!/bin/bash
   source /etc/profile
   #$KETTLE_HOME/pan.sh -file=/data1/testdata/testktr.ktr   

   $KETTLE_HOME/kitchen.sh -file=/data1/testdata/testkjb.kjb

3. crontab -e 进入定时任务编辑文件,命令格式见下方:

   # Example of job definition:
   # .---------------- minute (0 - 59)
   # |  .------------- hour (0 - 23)
   # |  |  .---------- day of month (1 - 31)
   # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
   # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
   # |  |  |  |  |
   # *  *  *  *  * user-name command to be executed    

   分 时 日 月 周 命令 
   第1列表示分钟1~59 每分钟用*或者 */1表示 
   第2列表示小时1~23(0表示0点) 
   第3列表示日期1~31 
   第4列表示月份1~12 
   第5列标识号星期0~6(0表示星期天) 
   第6列要运行的命令

   例如:每天早上7:50执行一次execron.sh

   50 7 * * * /data1/testdata/execron.sh

   详细执行命令解释请参考百度百科:

   crontab命令_百度百科

Linux下crontab命令添加Kettle作业定时任务