精华内容
下载资源
问答
  • linux crontab 命令,最小的执行时间是一分钟。这篇文章主要介绍了linux定时任务crontab 实现每秒执行一次的方法,需要的朋友可以参考下
  • linux crontab 命令,最小的执行时间是一分钟。如需要在小于一分钟内重复执行,可以有两个方法实现。Cron 各项的描述以下是 crontab 文件的格式:{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-...

    linux crontab 命令,最小的执行时间是一分钟。如需要在小于一分钟内重复执行,可以有两个方法实现。

    Cron 各项的描述

    以下是 crontab 文件的格式:

    {minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script} 
    o minute: 区间为 0 – 59 
    o hour: 区间为0 – 23 
    o day-of-month: 区间为0 – 31 
    o month: 区间为1 – 12. 1 是1月. 12是12月. 
    o Day-of-week: 区间为0 – 7. 周日可以是0或7.



    1.使用延时来实现每N秒执行

    创建一个php做执行动作,非常简单,就是把当前时间写入log。

    [php]  view plain  copy
    1. <?php  
    2. file_put_contents('/home/fdipzone/php/crontab/run.log'date('Y-m-d H:i:s')."\r\n", FILE_APPEND);  
    3. ?>  

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

    [plain]  view plain  copy
    1. * * * * * php /home/fdipzone/php/crontab/tolog.php  
    2. * * * * * sleep 10; php /home/fdipzone/php/crontab/tolog.php  
    3. * * * * * sleep 20; php /home/fdipzone/php/crontab/tolog.php  
    4. * * * * * sleep 30; php /home/fdipzone/php/crontab/tolog.php  
    5. * * * * * sleep 40; php /home/fdipzone/php/crontab/tolog.php  
    6. * * * * * sleep 50; php /home/fdipzone/php/crontab/tolog.php  
    使用 tail -f 查看执行情况,可以见到log每10秒被写入一条记录。

    [plain]  view plain  copy
    1. fdipzone@ubuntu:~$ tail -f /home/fdipzone/php/crontab/run.log  
    2. 2014-03-31 21:47:01  
    3. 2014-03-31 21:47:11  
    4. 2014-03-31 21:47:21  
    5. 2014-03-31 21:47:31  
    6. 2014-03-31 21:47:41  
    7. 2014-03-31 21:47:51  
    8. 2014-03-31 21:48:01  
    原理:通过延时方法 sleep N  来实现每N秒执行。

    注意:

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

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


    2.编写shell脚本实现 推荐

    crontab.sh

    [plain]  view plain  copy
    1. #!/bin/bash  
    2.   
    3. step=2 #间隔的秒数,不能大于60  
    4.   
    5. for (( i = 0; i < 60; i=(i+step) )); do  
    6.     $(php '/home/fdipzone/php/crontab/tolog.php')  
    7.     sleep $step  
    8. done  
    9.   
    10. exit 0  

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

    [plain]  view plain  copy
    1. # m h  dom mon dow   command  
    2. * * * * * /home/fdipzone/php/crontab/crontab.sh  
    使用 tail -f 查看执行情况,可以见到log每2秒被写入一条记录。

    [plain]  view plain  copy
    1. fdipzone@ubuntu:~/php/crontab$ tail -f run.log  
    2. 2014-03-31 22:23:01  
    3. 2014-03-31 22:23:03  
    4. 2014-03-31 22:23:06  
    5. 2014-03-31 22:23:08  
    6. 2014-03-31 22:23:10  
    7. 2014-03-31 22:23:12  
    8. 2014-03-31 22:23:14  
    9. 2014-03-31 22:23:16  
    10. 2014-03-31 22:23:18  
    11. 2014-03-31 22:23:20  
    12. 2014-03-31 22:23:22  
    13. 2014-03-31 22:23:25  
    14. 2014-03-31 22:23:27  
    15. 2014-03-31 22:23:29  
    16. 2014-03-31 22:23:31  
    17. 2014-03-31 22:23:33  
    18. 2014-03-31 22:23:35  
    19. 2014-03-31 22:23:37  
    20. 2014-03-31 22:23:39  
    21. 2014-03-31 22:23:41  
    22. 2014-03-31 22:23:44  
    23. 2014-03-31 22:23:46  
    24. 2014-03-31 22:23:48  
    25. 2014-03-31 22:23:50  
    26. 2014-03-31 22:23:52  
    27. 2014-03-31 22:23:54  
    28. 2014-03-31 22:23:56  
    29. 2014-03-31 22:23:58  
    30. 2014-03-31 22:24:00  
    原理:在sh使用for语句实现循环指定秒数执行。

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

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

    [plain]  view plain  copy
    1. # m h  dom mon dow   command  
    2. */7 * * * * /home/fdipzone/php/crontab/crontab.sh  
    展开全文
  • linux crontab 命令,最小的执行时间是一分钟。如需要在小于一分钟内重复执行,可以有两个方法实现。 Cron 各项的描述 以下是 crontab 文件的格式: {minute} {hour} {day-of-month} {month} {day-of-...

    linux crontab 命令,最小的执行时间是一分钟。如需要在小于一分钟内重复执行,可以有两个方法实现。

    Cron 各项的描述

    以下是 crontab 文件的格式:

    {minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script} 
    o minute: 区间为 0 – 59 
    o hour: 区间为0 – 23 
    o day-of-month: 区间为0 – 31 
    o month: 区间为1 – 12. 1 是1月. 12是12月. 
    o Day-of-week: 区间为0 – 7. 周日可以是0或7.



    1.使用延时来实现每N秒执行

    创建一个php做执行动作,非常简单,就是把当前时间写入log。

    [php]  view plain  copy
    1. <?php  
    2. file_put_contents('/home/fdipzone/php/crontab/run.log'date('Y-m-d H:i:s')."\r\n", FILE_APPEND);  
    3. ?>  

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

    [plain]  view plain  copy
    1. * * * * * php /home/fdipzone/php/crontab/tolog.php  
    2. * * * * * sleep 10; php /home/fdipzone/php/crontab/tolog.php  
    3. * * * * * sleep 20; php /home/fdipzone/php/crontab/tolog.php  
    4. * * * * * sleep 30; php /home/fdipzone/php/crontab/tolog.php  
    5. * * * * * sleep 40; php /home/fdipzone/php/crontab/tolog.php  
    6. * * * * * sleep 50; php /home/fdipzone/php/crontab/tolog.php  
    使用 tail -f 查看执行情况,可以见到log每10秒被写入一条记录。

    [plain]  view plain  copy
    1. fdipzone@ubuntu:~$ tail -f /home/fdipzone/php/crontab/run.log  
    2. 2014-03-31 21:47:01  
    3. 2014-03-31 21:47:11  
    4. 2014-03-31 21:47:21  
    5. 2014-03-31 21:47:31  
    6. 2014-03-31 21:47:41  
    7. 2014-03-31 21:47:51  
    8. 2014-03-31 21:48:01  
    原理:通过延时方法 sleep N  来实现每N秒执行。

    注意:

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

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


    2.编写shell脚本实现 推荐

    crontab.sh

    [plain]  view plain  copy
    1. #!/bin/bash  
    2.   
    3. step=2 #间隔的秒数,不能大于60  
    4.   
    5. for (( i = 0; i < 60; i=(i+step) )); do  
    6.     $(php '/home/fdipzone/php/crontab/tolog.php')  
    7.     sleep $step  
    8. done  
    9.   
    10. exit 0  

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

    [plain]  view plain  copy
    1. # m h  dom mon dow   command  
    2. * * * * * /home/fdipzone/php/crontab/crontab.sh  
    使用 tail -f 查看执行情况,可以见到log每2秒被写入一条记录。

    [plain]  view plain  copy
    1. fdipzone@ubuntu:~/php/crontab$ tail -f run.log  
    2. 2014-03-31 22:23:01  
    3. 2014-03-31 22:23:03  
    4. 2014-03-31 22:23:06  
    5. 2014-03-31 22:23:08  
    6. 2014-03-31 22:23:10  
    7. 2014-03-31 22:23:12  
    8. 2014-03-31 22:23:14  
    9. 2014-03-31 22:23:16  
    10. 2014-03-31 22:23:18  
    11. 2014-03-31 22:23:20  
    12. 2014-03-31 22:23:22  
    13. 2014-03-31 22:23:25  
    14. 2014-03-31 22:23:27  
    15. 2014-03-31 22:23:29  
    16. 2014-03-31 22:23:31  
    17. 2014-03-31 22:23:33  
    18. 2014-03-31 22:23:35  
    19. 2014-03-31 22:23:37  
    20. 2014-03-31 22:23:39  
    21. 2014-03-31 22:23:41  
    22. 2014-03-31 22:23:44  
    23. 2014-03-31 22:23:46  
    24. 2014-03-31 22:23:48  
    25. 2014-03-31 22:23:50  
    26. 2014-03-31 22:23:52  
    27. 2014-03-31 22:23:54  
    28. 2014-03-31 22:23:56  
    29. 2014-03-31 22:23:58  
    30. 2014-03-31 22:24:00  
    原理:在sh使用for语句实现循环指定秒数执行。

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

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

    [plain]  view plain  copy
    1. # m h  dom mon dow   command  
    2. */7 * * * * /home/fdipzone/php/crontab/crontab.sh  
    展开全文
  • 如果需要按执行,有以下两种方法: 方法一:通过sleep来实现 例: 1、创建test.php文件,这里测试通过打印时间好区分。 <?php file_put_contents('log.txt',date('Y-m-d H:i:s') . "\n", FILE_...

     

    目前在crontab中最小执行时间单位为分钟。

    如果需要按秒来执行,有以下两种方法:

     

    方法一:通过sleep来实现

    例:

    1、创建test.php文件,这里测试通过打印时间好区分。

    <?php
        file_put_contents('log.txt',date('Y-m-d H:i:s') . "\n", FILE_APPEND);
    ?>

    2、确保单独访问test.php文件能打印日志。

    3、编辑crontab文件,通过crontab -e 命令,比如我要每15秒运行一次,内容如下:

    * * * * * curl "http://127.0.0.1/testtask/test.php" && sleep 15;curl "http://127.0.0.1/testtask/test.php" && sleep 15;curl "http://127.0.0.1/testtask/test.php" && sleep 15;curl "http://127.0.0.1/testtask/test.php"

    4、打印结果,可以通过 tail -f log.txt 命令实时查看结果。

    可以看到每15秒打印出来结果。

     

     

    方法二:通过添加中间shell脚本来实现

    例:

    1、添加脚本文件 test.sh,内容如下:我这里是选择2秒执行一次。

    step=2 #间隔秒数
    for ((i = 0; i < 60; i = (i + step))); do
        $(curl "http://127.0.0.1/testtask/test.php")
        sleep $step
    done
    exit 0

    2、编辑crontab文件

    * * * * * /phpstudy/www/testtask/test.sh

    3、打印结果

     

    转载于:https://www.cnblogs.com/woods1815/p/10959223.html

    展开全文
  • linux定时任务精确到

    千次阅读 2018-03-04 11:51:32
    1、增加一个普通的定时器脚本dateTime.sh(用于打印当前时间)2、给该脚本增加可执行权限chmod 755 dateTime.sh3、编写定时任务crontab -e4、在log中查看结果程序就会10秒执行一次脚本,并将时间写入date...

    linux的crond定时任务只能精确到分,如何才能做到控制到秒呢?答案肯定是明显的,实现的方法也有多种,但本文只介绍一个相对来说比较精确,又方便的写法。

    1、增加一个普通的定时器脚本dateTime.sh(用于打印当前时间)


    2、给该脚本增加可执行权限

    chmod 755 dateTime.sh

    3、编写定时任务

    crontab -e


    4、在log中查看结果


    程序就会每10秒执行一次脚本,并将时间写入dateTime.log文件中

    思路:主要是使用linux的sleep控制脚本执行时间


    展开全文
  • crontab小时执行 0 */1 * * * myCommand 一小时 (0 */2 * * * 俩小时) 不要写成 * */1 * * * (分钟)奥
  • 由于项目需要,需要在服务器中同步日志文件,因此用到linux定时任务 服务器版本如下: ** Linux version 3.10.0-693.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16)...
  • 隔10秒执行一次1.定时执行脚本2.定时命令 1.定时执行脚本 1.1 连接远程主机,连接成功后。输入命令 crontab -e (可以先看一下定时列表 crontab -l) 1.2 打了文件,然后输入 i 进入编辑模式 1.3 输入完毕即按 ...
  • 30分钟执行一次 */30 * * * * /usr/local/qcloud/YunJing/YDCrontab.sh > /dev/null 2>&1 & 5分钟执行一次 */5 * * * * /home/test_python/test.py && echo "runing succeed!" >> ...
  • 需要用到Shell脚本隔3秒钟去监控一个软件进程的运行状态,发现crond似乎只支持到分,不知道,怎么办呢? 第一种方法: 当然首先想到的是写一个触发的脚本,在触发脚本中使用死循环来解决此问题,如下: cat ...
  • Linux任务计划的使用 10秒执行一次

    千次阅读 2019-11-05 14:46:10
    LINUX中,周期执行任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是“cron table”的...
  • 此工具稳定,能在所有win系列,linux系列执行定时,而且不用安装.net等工具,是代替系统定时任务的理想工具!
  • linux 实现执行定时任务

    千次阅读 2018-07-26 12:03:52
    总所周知,linux的crontab定时任务最高只能执行到分钟级别,分钟进行执行指定脚本。 但是,有很多时候我们进行统计操作的时候,需要执行的频率比较高,达到级。 接下来,整理下级的定时任务的开启 接下来,...
  • 隔1秒钟触发定时任务,然后又休眠 3秒、6秒、9秒等间隔 来执行具体的Shell脚本。 第一种方法和第二种方法并不是严格的间隔3秒执行的,会大于3秒,因为执行scripts.sh也是需要一定时间的,即使已经加了&符号放到...
  • linux curl定时任务

    万次阅读 2016-10-13 14:41:55
    */1 * * * * /usr/bin/curl http://172.16.0.106/index.php/Home/Index/crons  分钟访问这个URL一次
  • 实现每秒执行定时任务

    千次阅读 2018-03-24 19:34:10
    linux crontab 命令,最小的执行时间是一分钟。如需要在小于一分钟内重复执行,可以有两个方法实现。Cron 各项的描述以下是 crontab 文件的格式:{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-...
  • 时间到了自动对竞价情况进行筛选,这里我想到用crontab,但crontab最小只能一分钟执行一次,下面记录我的解决方法。 1) 新增加一个方法crontab,把相关的竞价处理代码写在里面,那么要执行这个方法只需要调用...
  • 注意:如果定时执行的程序 单次消耗的时间过大,比如1秒执行不玩,要seelp一下,就是死循环的时候 让脚本睡一会 下面演示一个shell脚本的秒级定时任务: 1.crontab -e 分钟执行inviteFriend.sh脚本  #2秒运行...
  • Linux定时任务级别)的实现

    万次阅读 2016-03-10 00:25:02
    方法1–巧用crontab命令linux下crontab命令可以执行定时任务,最小粒度为1min,但实际上对其合理运用,可以将粒度降到级别。以下代码是实现20s就执行一次任务,两种方式均可,但稍有不同。 修改用户的日常任务:...
  • 开启定时任务  crontab /weblogic/tools/task.crontab 停止定时任务 crontab /weblogic/tools/task.null.crontab   crontab [-u username] [-l|-e|-r] 参数: -u: 只有root才能...
  • */1 * * * * /bash/cpu_usage */1 * * * * sleep 5 && /bash/cpu_usage */1 * * * * sleep 10 && /bash/cpu_usage */1 * * * * sleep 15 && /bash/cpu_usage */1 * * * * sleep 20 &...
  • 1.定时任务介绍1.1 crond是什么crond是linux系统中用来定期执行命令或指定程序的一种服务或软件。特殊要求:(级别)crond服务就无法搞定了,一般工作中写脚本用守护进程执行[root@shellbiancheng jiaobenlianxi]# ...
  • linux 里定时执行任务的两种方式 第一种:使用linux 自带的执行任务 ...crontab -r 删除当前的定时任务 40 4 ** 1-5 命令 在每周一到周五的凌晨 4 点 40 分执行命令 */10 4 *** 命令 在每天的凌晨 4 点,隔 ...
  • 原理:crontab命令的功能是在一定的时间间隔调度一些命令的执行,通过延时方法 sleep N 来实现N秒执行。 crontab -l -------------- 查看当前用户的crontab crontab -e -------------- 编辑crontab crontab -r...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,827
精华内容 8,730
关键字:

linux定时任务每秒执行

linux 订阅