shell写定时任务

自己记录下-----使用脚本定时每几分钟执行一次任务:

#!/bin/bash
#打印当前地址
echo $(dirname $0)
#获取父级路径
path=$(dirname $(dirname $PWD))
echo ${path}

#执行的任务
program=aa.app
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
            echo 'now minute is '$presentminutes''
            onceflag=1
            echo '已执行:'$onceflag
        else
            continue
        fi
    else
        onceflag=0
        echo '不符合条件未执行'$onceflag
    fi
        sleep 30  #30秒查询一次当前时间 
done

猜你喜欢

转载自www.cnblogs.com/zyanrong/p/12536512.html