linux crontab 实现每秒执行的实例
linux crontab 命令,最小的执行时间是一分钟。如需要在小于一分钟内重复执行,可以有两个方法实现。
1、使用延时来实现每N秒执行
原理:通过延时方法 sleep N 来实现每N秒执行。
创建一个php做执行动作,非常简单,就是把当前时间写入log。
<?php
file_put_contents('/root/pengjun/php/crontab/run.log', date('Y-m-d H:i:s')."\r\n", FILE_APPEND);
?>
在linux的 crontab命令中输入一下语句,然后:wq 保存退出。
* * * * * php /home/fdipzone/php/crontab/tolog.php>>/tmp/date.txt
* * * * * sleep ; php /home/fdipzone/php/crontab/tolog.php>>/tmp/date.txt
* * * * * sleep ; php /home/fdipzone/php/crontab/tolog.php>>/tmp/date.txt
* * * * * sleep ; php /home/fdipzone/php/crontab/tolog.php>>/tmp/date.txt
* * * * * sleep ; php /home/fdipzone/php/crontab/tolog.php>>/tmp/date.txt
* * * * * sleep ; php /home/fdipzone/php/crontab/tolog.php>>/tmp/date.txt
使用 tail -f 查看执行情况,可以见到log每10秒被写入一条记录。
[root@shixiba crontab]# tail -f /root/pengjun/php/crontab/run.log;
-- ::
-- ::
-- ::
注意:
60必须能整除间隔的秒数(没有余数),例如间隔的秒数是2,4,6,10,12等。
如果间隔的秒数太少,例如2秒执行一次,这样就需要在crontab 加入60/2=30条语句。不建议使用此方法,可以使用下面介绍的第二种方法。
2、编写shell脚本实现
原理:在sh使用for语句实现循环指定秒数执行。
#!/bin/sh
step= #间隔的秒数,不能大于60
for (( i = ; i < ; i=(i+step) )); do
$(/usr/local/php/bin/php '/root/pengjun/crontab/ceshi.php')
sleep $step
done
exit
注意:如果60不能整除间隔的秒数,则需要调整执行的时间。例如需要每7秒执行一次,就需要找到7与60的最小公倍数,7与60的最小公倍数是420(即7分钟)。
则 crontab.sh step的值为7,循环结束条件i<420,
*/ * * * * /home/fdipzone/php/crontab/crontab.sh
linux crontab 实现每秒执行的实例的更多相关文章
- Linux crontab 实现每秒执行
Linux crontab 实现每秒执行 linux crontab 命令,最小的执行时间是一分钟.如需要在小于一分钟内重复执行,可以有两个方法实现. 1.使用延时来实现每N秒执行 创建一个php做执 ...
- linux crontab 实现每秒执行(转)
linux crontab 命令,最小的执行时间是一分钟.如需要在小于一分钟内重复执行,可以有两个方法实现. 1.使用延时来实现每N秒执行 创建一个php做执行动作,非常简单,就是把当前时间写入log ...
- Linux crontab 每5秒钟执行一次 shell 脚本 的方法
Linux crontab 每5秒钟执行一次 shell 脚本 的方法 由于 Linux 的 crontab 的定时命令格式如下: minute hour day-of-month month-of- ...
- 【Linux】 crontab 实现每秒执行
linux crontab 命令,最小的执行时间是一分钟, 如果要在小于一分钟执行.就要换个方法来实现 1 crontab 的延时: 原理:通过延时方法 sleep N 来实现每N秒执行. cr ...
- linux中crontab实现以秒执行任务
用crontab+sleep实现以秒执行任务 crontab -e * * * * * /bin/date >>/tmp/date.txt * * * * * sleep 10s; /bi ...
- crontab实现每秒执行
crontab: #!/bin/bash step=$1 #每多少秒执行一次 ; i < ; i=(i+step) )); do date +%Y%m%d' '%H:%M:%S >> ...
- LINUX下实现按秒执行计划任务
由于linux最小单位为分,但是很多需求上需要按秒执行,如30秒请求一个URL地址之类的,思路很简单就是修改计划任务脚本用循环控制,代码如下: #!/bin/bash PATH=/bin:/sbin: ...
- Linux crontab命令:循环执行定时任务(详解版)
前面学习了 at 命令,此命令在指定的时间仅能执行一次任务,但在实际工作中,系统的定时任务一般是需要重复执行的.而 at 命令显然无法满足需求,这是就需要使用 crontab 命令来执行循环定时任务. ...
- Linux crontab 在每月最后一天执行
59 23 * * * if [ `date +%d -d tomorrow` = 01 ]; then; command(/usr/bin/curl -s -o temp.txt http:// ...
随机推荐
- /^\s+|\s+$/g 技术 内容
alert(" aa dd ".replace(/^\s+|\s+$/g,'')+"方式的"); //正则表达式解释:分成两部分,^\s+ 以空格开头,\s+$ ...
- 分组取前N记录
分组取前N记录 经常看到问题,如何取出每组的前N条记录.方便大家参考于是便把常见的几种解法列出于下. 问题:有表 如下,要求取出各班前两名(允许并列第二)Table1+----+------+-- ...
- 判定map中是否存在某元素
判断某key是否存在可以使用map的count方法来间接判定 count接受一个参数key值,返回map中key值为给定值的元素总数 map<int, string> i_to_s_map ...
- 2018.10.23 vijo1243生产产品(单调队列优化dp)
传送门 这道单调队列真的有点难写啊. 方程感觉挺简单的. f[i][j]f[i][j]f[i][j]表示在第iii个车间结束前jjj次步骤的最小代价. 然后用单调队列毒瘤优化一下就行了. 代码: #i ...
- SQL查询优化的一些建议
使用批量查询,而不是N次循环查询! 重复的数据,不要重复获取: 根据需要,按需要获取表字段,而不是SELECT *: 针对频繁的搜索字段,建立必要的索引,以加快查询速度: 使用关联查询,而不是粗暴地类 ...
- java.lang.ExceptionInInitializerError Caused by: org.hibernate.InvalidMappingException: Unable to read XML
此错误是说无法读取你的xml文档,于是我们就该去更改xml文档,因为我是自动生成的,所以我找了一份之前手写的,发现是dtd错了,把之前的dtd拷贝过来之后程序就测试通过了
- MEF程序设计指南
############################################################################################## ##### ...
- Md5 util
Md5PasswordEncoder.java http://docs.spring.io/spring-security/site/docs/3.0.x/apidocs/org/springfram ...
- linux (centos 6.4)下编译安装git
是时候动手尝试下 Git 了,不过得先安装好它.有许多种安装方式,主要分为两种,一种是通过编译源代码来安装:另一种是使用为特定平台预编译好的安装包(yum install git). 若是条件允许,从 ...
- python关键的语法
python关键的语法 1.标准类型分类