Shell脚本实现每个工作日定时执行指定程序
我们可能会遇到这样的情景:必须在每个工作日定时执行Linux服务器上的某个程序。那么有没有办法实现这一功能呢?答案是肯定的。我们可以运用Shell脚本简单实现这一功能。
原理很简单,Shell脚本内部每隔1秒查询一次当前时间、日期以及星期数,当检测到当前星期数week非0或6(0代表星期天,6代表星期六)且时间curTime大于指定时间startTime时,执行指定的程序program。为了保证每天仅执行一次指定程序program,还引用了变量isFirstTime做标记。具体代码如下:
#!/bin/sh
#Section configuration(配置部分)
#Task Time ,example:(Time ::);(Time ::);
startTime=
#the programs you want to execute(要执行的程序)
program=ps
#Section promgram (程序执行部分)
perDate=$(date "+%Y%m%d")
isNewDay=
isFirstTime=
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`
] || [ $week -eq ];then
isNewDay=
continue
else
#check and run script(工作日执行)
" ];then
if [ "$curTime" -gt "$startTime" ];then
" ];then
echo 'The program ('$program') Running...'
$program
echo 'The program ('$program') Stopped...'
fi
isNewDay=
else
" ];then
echo 'New Day: ('$curDate') Task schedule Time: ('$startTime') Waiting...'
isFirstTime=
fi
fi
else
#new day start(开始新的一天)
if [ "$curDate" -gt "$perDate" ];then
echo 'New Day: ('$curDate') Task schedule Time: ('$startTime') Waiting...'
isNewDay=
perDate=$curDate
fi
fi
fi
done
该Shell脚本的功能为每个工作日的11点32分执行一次ps命令,执行的效果如下图所示。

Shell脚本实现每个工作日定时执行指定程序
当然该脚本只是为了演示这一定时原理,实际应用中可以指定其他的程序或者脚本,并利用nohup命令让其后台运行。
原文地址:http://ju.outofmemory.cn/entry/2058
Shell脚本实现每个工作日定时执行指定程序的更多相关文章
- VBA定时执行某程序
OnTime 方法参阅应用于示例特性安排一个过程在将来的特定时间运行(既可以是具体指定的某个时间,也可以是指定的一段时间之后). expression.OnTime(EarliestTime, Pro ...
- Linux 下用 crontab 设置定时执行python 程序
Linux 下用 crontab 设置定时执行python 程序 方法/步骤 1,先大概了解crontab,/etc/crontab 就是crontab 的配置文件. crontab命令详解可以查 ...
- 实用脚本 2 -- Linux下定时执行脚本
今天学习Linux下定时执行脚本,看到一篇讲解比较好的文章,特此拿来分享. 原文链接:http://www.blogjava.net/decode360/archive/2009/09/18/2877 ...
- 170509、文本编辑器编写的shell脚本在linux下无法执行的解决方法
今天碰到一个奇怪的问题,编写好的shell脚本再linux上执行一直提示找不到文件或目录,后来想想是文本编辑器的问题,记录下来!!! 1.查看当前文本格式 Notepad++界面中,在右下角有文件格式 ...
- 解决命令行执行shell脚本成功,但crontab执行失败
实际生产案例 生产机房自建PPTP客户端通过拨号连接到生产机房,但是一旦客户端网络是意外断线再重新拨号 会产生IP冲突,于是写了一个脚本监控PPTP的IP是否有多个(一般冲突以后会生成2个IP) #! ...
- shell脚本中多命令单行执行_转
多命令一起执行 如果希望把几个命令合在一起执行, shell提供了两种方法.既可以在当前shell也可以在子shell中执行一组命令. 对{}和()而言, 括号中的重定向符只影响该条命令, 而括号外的 ...
- shell脚本的if语句,判断某程序是否存在,不存在启动该程序!
想必大家都知道 "如果......那么......" 这种语法的应用吧! 当然呢,linux下对于这种用法也是有所考虑的,很多时候我们都需要写一个shell脚本,难免会避免if语句 ...
- shell脚本—根据文件个数定时备份
最近在了解Jenkins时,出现这样一个问题:linux ext3系统目录下的子目录个数不能超过31998个(参考:http://www.xshell.net/linux/1267.html),但je ...
- shell脚本中切换用户并执行命令
1.切换用户并执行命令 su 用户名 -c "命令" 2.切换用户并执行脚本 su 用户名 -s /bin/bash 脚本路径 3.切换用户并执行命令集su 用户名 << ...
随机推荐
- [工具] Dienstag
Dienstag 是一款专门用来进行团队排班的应用,无论是正常班.倒班,只需要几分钟就能生成一目了然的排班表,能够显示休假与缺勤.职务以及详尽的统计功能,并且能将排班情况导入系统日历.@Appinn ...
- oracle的日期相减
oracle的日期相减 : 两个date类型的 日期相减,得到的是天数,可能是带小数点的.如下:
- iOS - 引用计数探讨
<Objective-C 高级编程> 这本书有三个章节,我针对每一章节进行总结并加上适当的扩展分享给大家.可以从下面这张图来看一下这三篇的整体结构: 注意,这个结构并不和书中的结构一致,而 ...
- 交换机多VLAN访问同一网络
一.前言 经常有需求通过交换机改变IP地址或者实现在同一个交换机中建立多个VLAN访问外部网络(VLAN之间独立),在折腾了多次后,稍有心得,现记录之. 二.实现方案 何为VLAN就不在此赘述.实现起 ...
- Elasticsearch 不同的搜索类型之间的区别
1.match 轻量级搜索 GET /wymlib/_search { "query": { "match": { "title": ...
- Git 使用篇一:初步使用GitHub,下载安装git,并上传项目
首先在MAC上怎么操作. 在gitHub创立一个账户,在创立一个项目,这就不用我说了对吧. 创建完之后是这样的: 接下来,我们打开https://brew.sh 这是下载homebrew的网站,hom ...
- 注意:darknet安装
参考:https://github.com/AlexeyAB/darknet # 一.安装 ## linux下安装 - 在darknet目录下执行make ## windows下安装 1. 安装vs2 ...
- MySQL在linux上的source code安装方法(configure)
1.建立操作系统用户和组 [root@faspdev ~]# groupadd mysql [root@faspdev ~]# useradd -g mysql mysql 2.解压安装文件,进入解压 ...
- MySQL命令:创建数据库、插入数据
简介: 学习mysql环境为ubantu,下面记录一些基本的创建数据库和插入数据的口令 打开MySQL 服务并使用 root 登录: --打开 MySQL 服务 sudo service mysql ...
- http_build_query
http_build_query (PHP 5) http_build_query -- 生成 url-encoded 之后的请求字符串描述string http_build_query ( arra ...