`
月影无痕
  • 浏览: 1003292 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux秒级间隔的计划任务脚本

 
阅读更多

Linux 秒级间隔的计划任务脚本

 

Linux cron 计划任务最短间隔只有一分钟,在一些要求下,需要计划任务脚本以秒级别的间隔运行,比如一些队列处理程序,状态检测程序等等。

 

这个使用shell while, sleep  即可实现,实际就是形成一个死循环,反复执行指定的流程。如果要退出这个程序,直接杀死进程即可。但是我见过一些人写的脚本,没有考虑到脚本意外被中断时的恢复问题,或单实例问题(即此任务只能运行一次),经过总结,我整理了本文代码,以供参考,实现的特性:

 

1.  自定义运行间隔

2.   单实例(只能运行一次,多次运行是无效的)

3.   信号处理(可接收普通的进程控制信号)

 

second-cron.sh的内容:

 

#!/bin/bash

 

interval=5

single_instance=y

 

pidfile=/var/lock/subsys/`basename $0`.pid

 

if [ "$single_instance" == "y" ] ; then

    if [ -f $pidfile ] && [ -e /proc/`cat $pidfile` ] ; then

        exit 1

    fi

fi

 

trap "rm -fr $pidfile ; exit 0" 1 2 3 15

echo $$ > $pidfile

 

function process() {

    echo "process ..." > /dev/null

}

 

 

while [ 1 ]

do

    process

    sleep $interval

done

 

内容非常简单,请根据具体需要修改文件名称,interval, single_instance 几项参数。 process 函数中的处理流程请自行根据需要完善即可。

 

如果要避免此脚本意外退出后能自行恢复,请在cron 计划任务中添加:

*/1  *  *  *  * /root/second-cron.sh

 

如果需要源代码,请联系作者信箱zhangxugg@163.com

 

如此,即使当前脚本意外中断退出,也能自行恢复,一定程度上保证了可靠性。

 

0
5
分享到:
评论

相关推荐

    纯PHP 定时脚本_定时任务_计划任务

    使用里面的 _sock 方法非阻塞运行 如果进程死掉了 在触发时 会根据 cron.log 的文件时间 判断超过运行间隔 时间+10秒 重新继续运行 ,cron-run 保证... linux 系统建议使用 crontab 定时任务,window建议使用计划任务。

    Linux Crontab Shell脚本实现秒级定时任务的方法

    一、编写Shell脚本crontab.sh #!/bin/bash step=1 #间隔的秒数,不能大于60 for (( i = 0; i < 60; i=(i+step) )); do ...二、crontab -e 输入以下语句,...linux 秒级定时任务实现 思路: linux本身不支持秒级定时,

    定时url,定时任务执行,每隔秒执行请求网址

    此工具稳定,能在所有win系列,linux系列执行定时,而且不用安装.net等工具,是代替系统定时任务的理想工具!

    定时删除Linux上指定文件夹下面的过时文件

    设置定时器启动删除指定目录下超过当前系统时间指定时间间隔的文件,并将删除日志记录到日志文件中 定时设置 在终端键入 crontab -e # m h dom mon dow command 0 3 * * * /home/config/dropOldFile.sh 每天凌晨三点...

    shell脚本(监控日志发告警邮件)

    监控生产环境nginx日志发告警邮件,需要使用linux系统的定时任务,如5分钟执行或者其他时间间隔

    linux使用find和crontab命令定期清理过期文件

    crontab 命令是 Linux 中用来设定重复执行命令或脚本的工具。它能够在指定的时间段内,按照需求以某一时间间隔执行命令或脚本。 crontab 的基本用法 crontab [-u ] [-e|-l|-r] crontab crontab <filename> 可以...

    PHP定时执行任务的3种方法详解

    1、windows 的计划任务 2、linux的脚本程序 3、让web浏览器定时刷新 具体实现 1、windows计划任务 PHP很少在win服务器上跑,具体实现也不再深究,看网上实现的原理大概是写bat脚本,然后让window任务添加执行这个...

    大数据“分布式调度框架”大集合.docx

    任务调度是指基于给定的时间点,给定的时间间隔或者给定执行次数自动的执行任务。任务调度是是操作系统的重要组成部分,而对于实时的操作系统,任务调度直接影响着操作系统的实时性能。任务调度涉及到多线程并发、...

    cmd操作命令和linux命令大全收集

    at /delete 停止所有计划任务,用参数/yes则不需要确认就直接停止 at id号 /delete 停止某个已注册的计划任务 at 查看所有的计划任务 at ip time 程序名(或一个命令) /r 在某时间运行对方某程序并重新启动计算机...

    12.系统和数据库备份、恢复策略.doc

    数据信息备份 在数据库服务器上提供了备份脚本,/home/oracle/backup/strbackup.sh、/hom e/oracle/backup/databackup.sh,通过linux计划任务,每周一凌晨备份一次, 具体时间可设置,默认7天,保留最近20次备份。...

    入门学习Linux常用必会60个命令实例详解doc/txt

    不过目前大多数较新的Linux发行版本(包括红旗 Linux、中软Linux、Mandrake Linux等)都可以自动挂装文件系统,但Red Hat Linux除外。 umount 1.作用 umount命令的作用是卸载一个文件系统,它的使用权限是超级...

    netusage:进程级网络流量监视工具

    您可以使用-i 参数指定以秒为单位打印结果的间隔。 例如,以下命令每5秒运行一次该工具: sudo python3 ./main.py -i 5结果看起来像这样: 显然, fcntl库使该程序仅能在Linux上运行。 ( )由于Windows不能访问...

    Java实现zp大文件解压、合并、复制、删除(30万文件大约2个小时)

    程序测试可用,直接解压导入到工程就可以,bat文件跟shell文件是用于在window跟linux上直接执行的脚本 我把开发的配置文档附上: 1.程序为定时任务,任务执行时间在bin目录下的配置文件mergeFilleUtil.properties中...

    通讯调试工具,支持:串口通讯、串口代理、TCP、UDP、Telnet、Ping、TFtp等通讯测试

    15、支持发送文件操作,包含每次发送的长度、间隔时间等,也可以通过脚本语言读取文件进行自定义格式发送, 如包含同步、长度、校验等信息。 ... ------------lua 可调用的服务函数----------------------------...

    matlab调整代码行间距-HALFpipe:半管

    然后可以使用和统计动态计算静止状态和基于任务的常见功能磁共振成像特征。 如果遇到问题,请参阅本文档的小节。 目录 入门 HALFpipe作为容器分发,这意味着所有必需的软件都捆绑在一个整体文件中,即容器。 由于...

    测试培训教材

    8、测试任务定义、测试任务分配 定义测试集 测试集的例子: 创建“Mercury Tours Site”测试集 Mercury Tours 1.0.1 新建测试集: 本测试集包含用于测试Mercury Tours网站的功能正确性的测试用例。 设置...

    易语言程序免安装版下载

    易语言5.1 相对于易语言5.0更新说明:  支持静态链接其它编程语言(如C/C++、汇编等)编译生成的静态库(.LIB或.OBJ),但仅限于COFF格式,支持cdecl和stdcall两种函数调用约定。  使用说明如下:函数声明和调用...

Global site tag (gtag.js) - Google Analytics