shell写定时任务

自己记录下-----使用脚本定时每几分钟执行一次任务:#!/bin/bas#打印当前地址cd $(dirname $0)echo $(dirname $0#获取父级路径path=$(dirname $(dirname $PWD))/jars/gather-1.0-SNAPSHOT-jar-with-dependencies.jar

echo ${path}

#执行的任务
program=com.txj.realtimeregionstat.RegionStatByRedis
step=5

#获取当前时间
#perDate=$(date "+%Y%m%d")
#获取一天后的时间
afterdata=$(date -d +1day "+%Y%m%d")

#每5分钟仅仅执行一次,设置标志位
onceflag=0

echo 'task schedule time Waiting to run (once per 5min)...'

#死循环,检查当前时间段分钟数符合条件,则开始执行程序
while true ; do
    #获取当前分钟数,date获取当前日期,%M来获取当前分钟数
    presentminutes=$(date "+%M")

    #expr 是一款表达式计算工具, 注意使用的是反引号 ` 而不是单引号 '
    if [ `expr $presentminutes % $step` -eq 0 ]
    then
        if [ $onceflag -eq 0 ]
        then
            java -cp ${jarpath} ${mainclass}
       #nohup hadoop jar ${jarPath} ${mainclass} &
       onceflag=1 echo '已执行:'$onceflag else continue fi else onceflag=0 echo '不符合条件未执行'$onceflag fi sleep 30 #30秒查询一次当前时间 done
原文地址:https://www.cnblogs.com/zyanrong/p/12536512.html