linux crontab定时任务:

*/5 * * * * flock -xn /tmp/kettle_job_sjgz_server.lock 
-c '/bin/bash /opt/pdi-ce-6.1.0.1-196/kettle_job_sjgz_server.sh 
>> /opt/pdi-ce-6.1.0.1-196/kettle_job_sjgz_server.log 2>&1'

:每隔5分钟执行一次,注意始终是从0开始,如0分、5分、10分......

:执行时加锁,避免前一次在5分钟内执行不完造成重复执行。flock文件锁,

  1. -x, --exclusive: 获得一个独占锁

  2. -n, --nonblock: 如果没有立即获得锁,直接失败而不是等待

:要执行的脚本

:设置要输入日志的路径。注意>和>>的区别,前者是覆盖插入,后者是追加,此处是追加日志。2>&1的意思是错误日志信息输出到等同于标准日志,就是标准日志和错误日志都输出到这个log文件中。

shell脚本内容:

export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
export CLASSPATH=.:$JAVA_HOME/jre/lib/*:$JAVA_HOME/lib/*
export PATH=$JAVA_HOME/bin:$PATH
cd /opt/pdi-ce-6.1.0.1-196/data-integration
echo "startsjgz_server......................." `date` 
./kitchen.sh -rep=kettle -job=Jobs/SJGZ/sjgz_server
echo "endsjgz_server........................." `date` 

 :设置环境变量

:切换目录,执行sh脚本。

Logo

更多推荐