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