shell脚本每五分钟执行一次可执行程序(nohup)

两种解决方案:个人推荐第二种,使用crontab来定时执行任务
 
1.shell代码如下:
nohup command &. 解释: 后台永久运行command命令。
(nohup表示后台永远执行,不随终端退出而终止。&表示后台运行,随着终端退出程序而终止。两个一起就是后台永久运行了)
 1 #!/bin/bash
 2 
 3 #需要定时执行的程序
 4 program=testapp 5 
 6 #获取当前时间,例如20171129 <---> perDate=$(date "+%Y%m%d")
 7 #获取一天后的时间
 8 afterdata=$(date -d +1day "+%Y%m%d")
 9 #afterdata=20170323
10 #每五分钟仅仅执行一次,设置标志位
11 onceflag=0
12 
13 echo 'Task schedule Time: ('$program') program Waiting to run(once per 5min)...'
14 
15 #死循环,当检测到当前时间段分钟数符合条件,则开始执行程序
16 while true ; do
17         #获取当前分钟数, date获取当前日期,%M来获取当前分钟数。
18         presentminutes=$(date "+%M");
19         
20         if [ `expr $presentminutes % 5` -eq 0 ]
21         then
22             if [ $onceflag -eq 0 ]
23             then
24                 echo 'Now minute is '$presentminutes''
25                 echo 'The program ('$program') running...'
26                 echo $program $afterdata    //打印测试可执行程序格式是否正确
27                 $program $afterdata
28                 echo 'The program ('$program') stopped...'
29                 onceflag=1
30             else
31                 continue
32             fi
33         else
34             onceflag=0
35         fi
36         
37         sleep 1 //一秒查询一次当前时间点
38 done

2.也可以使用crontab来完成每五分钟定时执行一次可执行任务。关于crontab可以参考我其它博客。



原文地址:https://www.cnblogs.com/linux-wang/p/8142844.html