crontab处理java定时任务

来源:互联网 发布:淘宝省市区三级联动js 编辑:程序博客网 时间:2024/06/04 19:28

在写jar包的定时任务的时候,试了很多次无法定时,经过多次尝试如下:


1.定时脚本timeout.sh

#!/bin/sh

#. /etc/profile

PNAME="Code"    #路径记得加双引号
#PATHNAME=/root/test-bk/Code
PID=`ps -ef|grep "$PNAME"|grep -v "grep"| grep -v "bash"|awk '{print $2}'` #过滤的时候切记过滤到全路径里面与脚本相同的名字,否则会杀死脚本

LENGTH=`echo $PID|wc -c`
if test $LENGTH -ne 0
then
kill -9 $PID
fi


#cd $PATHNAME
#echo $PATHNAME >> aa.txt
nohup /usr/local/java/jdk1.8.0_111/bin/java -jar -Xmx1g /root/Code-time/Code.jar -cp /usr/local/java/jdk1.8.0_111/lib/dt.jar:/usr/local/java/jdk1.8.0_111/lib/tools.jar >/dev/null &  #带上java的环境变量,因为crontab不会加载java环境变量


#echo $PATHNAME/start.sh #禁止出现echo cat 之类的,不然crontab无法启动


2.crontab内容

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/java/jdk1.8.0_111/bin:/usr/local/java/jdk1.8.0_111/jre/bin   #在shell命令行输出echo $PATH即为此处的path

#*/1 * * * * sh /root/Code-time/test.sh
*/1 * * * * bash /root/Code-time/timeout-re.sh  此处表示每分钟执行一次
1 * * * * bash /root/Code-time/timeout-re.sh 此处表示每小时的第一分钟执行
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart 晚上11点到早上7点之间,每隔一小时执行

3.crontab对应表
基本格式 :
*  *  *  *  *  command
分  时  日  月   周        命令

 

原创粉丝点击