1   crontab 的延时: 原理:通过延时方法 sleep N  来实现每N秒执行。

crontab -e 输入以下语句,然后 :wq 保存退出。

* * * * * /usr/bin/curl http://www.test.com
* * * * * sleep 5; /usr/bin/curl http://www.test.com
* * * * * sleep 10; /usr/bin/curl http://www.test.com
* * * * * sleep 15; /usr/bin/curl http://www.test.com
* * * * * sleep 20; /usr/bin/curl http://www.test.com
* * * * * sleep 25; /usr/bin/curl http://www.test.com
* * * * * sleep 30; /usr/bin/curl http://www.test.com
* * * * * sleep 35; /usr/bin/curl http://www.test.com
* * * * * sleep 40; /usr/bin/curl http://www.test.com
* * * * * sleep 45; /usr/bin/curl http://www.test.com
* * * * * sleep 50; /usr/bin/curl http://www.test.com
* * * * * sleep 55; /usr/bin/curl http://www.test.com

注意:

60必须能整除间隔的秒数(没有余数),例如间隔的秒数是2,4,6,10,12等。

如果间隔的秒数太少,例如2秒执行一次,这样就需要在crontab 加入60/2=30条语句。不建议使用此方法,可以使用下面介绍的第二种方法。

2 shell 脚本实现

crontab.sh

#!/bin/bash  

step=2 #间隔的秒数,不能大于60  

for (( i = 0; i < 60; i=(i+step) )); do
$(php '/home/fdipzone/php/crontab/tolog.php')
sleep $step
done exit 0

crontab -e 输入以下语句,然后:wq 保存退出。

# m h  dom mon dow   command
* * * * * /home/fdipzone/php/crontab/crontab.sh

使用以下命令查看结果

fdipzone@ubuntu:~/php/crontab$ tail -f run.log  

原理:在sh使用for语句实现循环指定秒数执行。

注意:如果60不能整除间隔的秒数,则需要调整执行的时间。例如需要每7秒执行一次,就需要找到7与60的最小公倍数,7与60的最小公倍数是420(即7分钟)。

则 crontab.sh step的值为7,循环结束条件i<420, crontab -e可以输入以下语句来实现

# m h  dom mon dow   command
*/7 * * * * /home/fdipzone/php/crontab/crontab.sh

参考网上,仅供学习交流

欢迎交流反馈

Linux crontab 实现秒级定时任务的更多相关文章

  1. Linux下实现秒级定时任务的两种方案

    Linux下实现秒级定时任务的两种方案(Crontab 每秒运行): 第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间. while true ;do command s ...

  2. Linux下实现秒级定时任务的两种方案(crontab 每秒运行)

    第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间. while true ;do command sleep XX //间隔秒数 done 第二种方案,使用crontab ...

  3. Swoft 2.0.5 更新,新增高效秒级定时任务、异常管理组件

    什么是 Swoft ? Swoft 是一款基于 Swoole 扩展实现的 PHP 微服务协程框架.Swoft 能像 Go 一样,内置协程网络服务器及常用的协程客户端且常驻内存,不依赖传统的 PHP-F ...

  4. Linux下实现秒级的crontab定时任务

    crontab的格式如下 * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 ...

  5. Linux Crontab Shell脚本实现秒级定时任务

    一.编写Shell脚本crontab.sh #!/bin/bash step=1 #间隔的秒数,不能大于60 for (( i = 0; i < 60; i=(i+step) )); do $( ...

  6. 如何让linux定时任务crontab按秒执行

    如何让linux定时任务crontab按秒执行? linux定时任务crontab最小执行时间单位为分钟如果想以秒为单位执行,应该如何设置呢?思路 正常情况是在crontab中直接定义要执行的任务,现 ...

  7. linux 定时任务到秒级

    linux crontab 只有到分钟级别的 有两种方法 方法1.写个sh脚本,循环(下例为每秒访问一次百度) #! /bin/bash PATH=/bin:/sbin:/usr/bin:/usr/l ...

  8. CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放 《CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放》来自张戈博客

    张戈博客很久以前分享过一个CC攻击的防御脚本,写得不怎么样,不过被51CTO意外转载了.博客从此走上了经常被人拿来练手的不归之路. 当然,还是有不少朋友在生产环境使用,并且会留言询问相关问题.根据这些 ...

  9. Linux crontab命令:循环执行定时任务(详解版)

    前面学习了 at 命令,此命令在指定的时间仅能执行一次任务,但在实际工作中,系统的定时任务一般是需要重复执行的.而 at 命令显然无法满足需求,这是就需要使用 crontab 命令来执行循环定时任务. ...

随机推荐

  1. MySQL的btree索引和hash索引

    Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-T ...

  2. Net-SNMP(V3协议)安装配置笔记(CentOS 5.2)(转)

    原出处:http://blog.ihipop.info/2010/03/722.html 为了这颗仙人掌(cacti),我必须先部署(Net-SNMP), 同时我为了安全因素,也为了简便考虑,决定采用 ...

  3. The tenth day

    Why the long face? 你为什么不高兴,你为什么扳着脸,愁眉苦脸. Why the long face? Are you feeling down again? 你脸怎么这么臭,你又心情 ...

  4. System.IO.IOException: The handle is invalid.

    System.IO.IOException: The handle is invalid. 00022846 11:39:49.098 AM [892] 00022847 11:39:49.098 A ...

  5. lottie使用

    dependencies { implementation 'com.airbnb.android:lottie:2.5.5' } 动画素材地址:https://www.lottiefiles.com ...

  6. Unity利用AnimationCurve做物体的各种运动

    ​之前一直都是自己学习Unity各种做Demo,最近开始正式使用Unity来做一个款2d的游戏. 其中在做一个类似小球弹跳运动的时候遇到了点问题,查找了很多资料,无意间发现AnimationCurve ...

  7. 用SQL将数字转换为中文数字

    IF OBJECT_ID('fn_GetChnNum') IS NOT NULL BEGIN DROP FUNCTION dbo.fn_GetChnNum; END; GO CREATE FUNCTI ...

  8. 如何使用事务码SMICM分析ABAP代码发起的HTTP请求的错误ICM_HTTP_SSL_PEER_CERT_UNTRUSTED

    当我用CL_HTTP_CLIENT往一个外网的url发请求时,遇到错误:ICM_HTTP_SSL_PEER_CERT_UNTRUSTED 错误是从这段ABAP代码里抛出来的: CALL METHOD ...

  9. 在写EF 时把时间格式化的做法

    SELECT COUNT(l.LogSeq), date_format(l.CreateDate,'%Y-%m') CreateDateByMonth FROM LOL l WHERE l.Creat ...

  10. vue.js 错误提示bash: vue: command not found

    在使用 vue init webpack vue-demo 进行demo的下载时,提示vue: command not found,原因是环境变量没有进行配置,所以会出现这个问题,解决办法 找到你安装 ...