Cronjob 定时执行 pentaho job(解决spoon.sh command line not found 问题)

1. 使用kitchen.sh 编写shell脚本 用作pdi 任务(脚本名为:/opt/webex/spark_metrics.job)

#!/bin/sh

export JAVA_HOME=/usr/java
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre

cd /opt/webex/pentaho_data_integration
./kitchen.sh \
-file $PWD/resources/pdi/spark_metrics/Spark_Metrics_Job.kjb \
-param:"du_etl_hostname=ip" \
-param:"spark_metrics_api=http://ip/du/api/v1.0/checks/redisSparkMetrics" \
>>/opt/webex/pentaho_data_integration/logs/ten_min_`date +%Y%m%d%H%M`.log

注意点:

(1) 必须在shell中加入export 来配置java环境变量,否则会出现spoo.sh command line not found的问题

(2) 输出日志放在最后, 可以使用shell的date命令格式%Y%m%d%H%M可以输出为201711101026.log


2. 编写cronJob

10,30 * * * *  /opt/webex/spark_metrics.sh 

代表:每个小时的10,30分触发该shell脚本

注意:crontab 一般格式为 :

10,30 * * * * opt/webex/spark_metrics.sh >dev/null 2>&1

第一个>dev/null : 正常日志流输出到null也就是不输出

第二个2>&1 : 错误日志流等同正常流输出

你可能感兴趣的:(Java,Web,架构系列,知识)