我们可能会遇到这样的情景:必须在每个工作日定时执行

原理很简单,Shell脚本内部每隔1秒查询一次当前时间、日期以及星期数,当检测到当前星期数week非0或6(0代表星期天,6代表星期六)且时间curTime大于指定时间startTime时,执行指定的程序program。为了保证每天仅执行一次指定程序program,还引用了变量isFirstTime做标记。具体代码如下:

#!/bin/sh

#Section configuration(配置部分)

#Task Time ,example:203000(Time 20:30:00);190000(Time 19:00:00);

startTime=113200

#the programs you want to execute(要执行的程序)

program=ps

#Section promgram (程序执行部分)

perDate=$(date "+%Y%m%d")

isNewDay=1

isFirstTime=1

echo 'Task schedule Time: ('$startTime') program: ('$program') Waiting...'

while true ; do

curTime=$(date "+%H%M%S")

curDate=$(date "+%Y%m%d")

#Check week day(周末不执行)

week=`date +%w`

if [ $week -eq 6 ] || [ $week -eq 0 ];then

isNewDay=0

sleep 1

continue

else

#check and run script(工作日执行)

if [ "$isNewDay" -eq "1" ];then

if [ "$curTime" -gt "$startTime" ];then

if [ "$isFirstTime" -eq "0" ];then

echo 'The program ('$program') Running...'

$program

echo 'The program ('$program') Stopped...'

fi

isNewDay=0

else

if [ "$isFirstTime" -eq "1" ];then

echo 'New Day: ('$curDate') Task schedule Time: ('$startTime') Waiting...'

isFirstTime=0

fi

fi

else

#new day start(开始新的一天)

if [ "$curDate" -gt "$perDate" ];then

echo 'New Day: ('$curDate') Task schedule Time: ('$startTime') Waiting...'

isNewDay=1

perDate=$curDate

fi

fi

sleep 1

fi

done

该Shell脚本的功能为每个工作日的11点32分执行一次ps命令,执行的效果如下图所示。

Shell脚本实现每个工作日定时执行指定程序

当然该脚本只是为了演示这一定时原理,实际应用中可以指定其他的程序或者脚本,并利用nohup命令让其后台运行。

除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。

linux脚本定时执行,Shell脚本实现每个工作日定时执行指定程序相关推荐

  1. Linux 定时执行shell 脚本

    2019年第 85 篇文章,总第 109 篇文章 本文大约2000字,阅读大约需要6分钟 crontab 可以在指定的时间执行一个shell脚本以及执行一系列 Linux 命令. 定时执行shell ...

  2. linux定时执行shell脚本

    linux定时执行shell脚本 需求:每分钟检查下文件是否存在 解决思路: 1.编写shell脚本,检查文件是否存在,存在在文件中记录yes,不存在记录no 2.将脚本加入linux定时任务cron ...

  3. linux执行shell过程日志,Android之在linux终端执行shell脚本直接打印当前运行app的日志...

    1.问题 我们一般很多时候会需要在ubuntu终端上打印当前运行app的日志,我们一般常见的做法是 1).获取包名 打开当前运行的app,然后输入如下命令,然后在第一行TASK后面的就可以看到包名 a ...

  4. linux下开机自动启动,定时运行shell脚本

    Shell 脚本与window/dos 下的批处理相似,也就是用各类命令预先放入一个文件中,方便一次性执行的的一个程序文件,主要是方便管理员进行设置或者管理用. 一.shell脚本 在Linux下,我 ...

  5. Linux qt shell脚本,QT执行shell脚本或者执行linux指令

    由于我在做linux下的QT开发,有时候会用到shell脚本的辅助,但是需要QT运行shell脚本并获取执行结果,今天给大家分享下我的技巧,废话少说直接上代码: //执行shell指令或者shell脚 ...

  6. Java程序定时执行shell脚本

    第一次写博客,写的不好还请见谅. 之前在Linux环境中想定期执行某个脚本,第一反应就是将这个task加入到crontab里(crontab的知识点这里就不具体介绍了),当然,这种做法一般情况下是可行 ...

  7. loadrunner11 linux服务器,Loadrunner怎么执行linux服务器上的shell脚本?

    java是可以执行shell脚本的,如下: //command就是你在linux上执行脚本的字符串命令 StringBuffer command = new StringBuffer(); comma ...

  8. Linux中执行shell脚本的4种方法

    这篇文章主要介绍了Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法,需要的朋友可以参考下. bash shell 脚本的方法有多种,现在作个小结.假设我们编写 ...

  9. Linux下如何执行Shell脚本

    Linux下如何执行Shell脚本 Linux下你可以有两种方式执行Shell脚本: 1.用shell程序执行脚本:根据你的shell脚本的类型,选择shell程序,常用的有sh,bash,tcsh等 ...

  10. Linux shell:执行shell脚本的几种方式

    在Linux命令行执行shell脚本有如下三种方式: 1)bash test or sh test 2)./test 3)test 注:第三种方式需要将当前目录添加到PATH,否者会提示:-bash: ...

最新文章

  1. 【直播回顾】蚂蚁金服高级开发工程师萧恺:IDEA 插件开发入门教程
  2. 高精度模板 洛谷Luogu P1932 A+B A-B A*B A/B Problem
  3. REACT map dictionary
  4. 手动添加mysql服务
  5. 爬取行政区划(改版)
  6. 计算机主机配置一般有机箱主板cpu,电脑配置参数详解教程
  7. 课后自主练习(递归)1059. Fj haozi medium《编程思维与实践》个人学习笔记
  8. char类型数据说明
  9. MySQL子查询的优缺点_浅谈mysql的子查询
  10. 【Markdown语法】字体颜色大小及文字底色设置
  11. 《计算机网络技术》第一章课后习题答案(全)
  12. leetcode简单之597.好友申请I:总体通过率
  13. 【ArcGIS微课1000例】0063:ArcGIS Earth完美代替Google Earth(附安装包下载)
  14. Windows沙拉:默认浏览器背后的故事
  15. windows自带的待办事项工具在哪?
  16. c++/VS XP系统 无法定位程序输入点WSAPoll于动态链接库ws2_32.dll解决方案
  17. android手机可以换字体吗,最新版安卓手机怎么换字体?
  18. 计算机如何删除已连接的打印机驱动程序,打印机驱动程序不见了,如何自行删除...
  19. C/S构架与B/S构架的优缺点
  20. 没有学历可以学计算机编程吗,没学历可以学开发吗?

热门文章

  1. 为什么要进入 5G 时代?
  2. “一切即代码”究竟意味着什么?
  3. 这些硬核公众号你知道几个?
  4. CPU 是如何工作的?
  5. 5G 浪潮来袭!程序员在风口中有何机遇?
  6. @前端工程师,节约网站流量用这一招就够了!
  7. Java 这一年:IntelliJ 称霸 IDE,Kotlin 成最大赢家!
  8. Android 危险!
  9. 程序员:请不要对我的代码指手画脚!
  10. 扎克伯格、张一鸣的技术“原罪”