• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Linux-wang
博客园    首页    新随笔    联系   管理    订阅  订阅
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可以参考我其它博客。



posted on 2017-12-29 09:39  SmallMosquito  阅读(19101)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3