<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    Linux crontab 實現每秒執行

     linux crontab 命令,最小的執行時間是一分鐘。如需要在小于一分鐘內重復執行,可以有兩個方法實現。
      1.使用延時來實現每N秒執行
      創建一個php做執行動作,非常簡單,就是把當前時間寫入log。
      <?php
      file_put_contents('/home/fdipzone/php/crontab/run.log', date('Y-m-d H:i:s')."\r\n", FILE_APPEND);
      ?>
      crontab -e 輸入以下語句,然后 :wq 保存退出。
    * * * * * php /home/fdipzone/php/crontab/tolog.php
    * * * * * sleep 10; php /home/fdipzone/php/crontab/tolog.php
    * * * * * sleep 20; php /home/fdipzone/php/crontab/tolog.php
    * * * * * sleep 30; php /home/fdipzone/php/crontab/tolog.php
    * * * * * sleep 40; php /home/fdipzone/php/crontab/tolog.php
    * * * * * sleep 50; php /home/fdipzone/php/crontab/tolog.php
      使用 tail -f 查看執行情況,可以見到log每10秒被寫入一條記錄。
    fdipzone@ubuntu:~$ tail -f /home/fdipzone/php/crontab/run.log
    2014-03-31 21:47:01
    2014-03-31 21:47:11
    2014-03-31 21:47:21
    2014-03-31 21:47:31
    2014-03-31 21:47:41
    2014-03-31 21:47:51
    2014-03-31 21:48:01
      原理:通過延時方法 sleep N  來實現每N秒執行。
      注意:
      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

      使用 tail -f 查看執行情況,可以見到log每2秒被寫入一條記錄。
    fdipzone@ubuntu:~/php/crontab$ tail -f run.log
    2014-03-31 22:23:01
    2014-03-31 22:23:03
    2014-03-31 22:23:06
    2014-03-31 22:23:08
    2014-03-31 22:23:10
    2014-03-31 22:23:12
    2014-03-31 22:23:14
    2014-03-31 22:23:16
    2014-03-31 22:23:18
    2014-03-31 22:23:20
    2014-03-31 22:23:22
    2014-03-31 22:23:25
    2014-03-31 22:23:27
    2014-03-31 22:23:29
    2014-03-31 22:23:31
    2014-03-31 22:23:33
    2014-03-31 22:23:35
    2014-03-31 22:23:37
    2014-03-31 22:23:39
    2014-03-31 22:23:41
    2014-03-31 22:23:44
    2014-03-31 22:23:46
    2014-03-31 22:23:48
    2014-03-31 22:23:50
    2014-03-31 22:23:52
    2014-03-31 22:23:54
    2014-03-31 22:23:56
    2014-03-31 22:23:58
    2014-03-31 22:24:00
      原理:在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

    posted on 2014-04-08 10:58 順其自然EVO 閱讀(3642) 評論(1)  編輯  收藏 所屬分類: linux

    評論

    # re: Linux crontab 實現每秒執行 2014-06-10 22:28 hairen

    LZ 你的crontab.sh是怎么寫的啊,能不能重新排版下給我發一份,我這兒執行不了,謝謝!  回復  更多評論   

    <2014年4月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日韩精品无码免费一区二区三区 | 国产亚洲精品美女久久久久久下载| 免费看国产一级片| 无码日韩精品一区二区免费| 久久最新免费视频| 麻豆安全免费网址入口| 欧洲 亚洲 国产图片综合| 亚洲男人都懂得羞羞网站| 亚洲人成影院在线无码按摩店 | 亚洲最大成人网色香蕉| 精品日韩亚洲AV无码| 久久亚洲春色中文字幕久久久 | 免费无码毛片一区二区APP| 91在线视频免费观看| 中文字幕不卡高清免费| 91视频免费网站| 9420免费高清在线视频| 99ee6热久久免费精品6| 国产无人区码卡二卡三卡免费| 国国内清清草原免费视频99| 8888四色奇米在线观看免费看| 亚洲精品在线免费看| 免费高清av一区二区三区| 亚洲AV无码不卡在线观看下载| 亚洲免费在线观看| 亚洲免费人成视频观看| 久久亚洲精品国产亚洲老地址 | 四虎影视精品永久免费网站| 免费大片在线观看网站| 亚洲处破女AV日韩精品| 中日韩亚洲人成无码网站| 免费播放国产性色生活片| 99精品免费观看| 国产福利免费观看| 亚洲人成在线电影| 国产精品成人亚洲| 亚洲免费在线视频观看| 亚洲午夜福利精品久久| 亚洲18在线天美| 国产免费福利体检区久久| 免费看a级黄色片|