php+crontab的定時任務-- 完結版


php+crontab的定時任務,看網上各種資料,總是他一言你一語,沒有一篇文章,看完就讓人懂的。現總結如下:

一、crontab是linux系統功能與程序無關

    crontab -e //編輯某個用戶的cron服務                //這個最重要,自己編寫crontab

    crontab -l //列出某個用戶cron服務的詳細內容   //這個也重要,查看自己寫了哪些定時任務

    crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數
    crontab -r //刪除某個用戶的cron服務


  關於時間的書寫規則:

    前5個字段分別表示:
    分鍾:0-59
    小時:1-23
    日期:1-31
    月份:1-12
    星期:0-6(0表示周日)

    還可以用一些特殊符號:
      *: 表示任何時刻
      ,: 表示分割
      -:表示一個段,如第二端里: 1-5,就表示1到5點
      /n : 表示每個n的單位執行一次,如第二段里,*/1, 就表示每隔1個小時執行一次命令。也可以寫成1-23/1。。在‘/’子表達式(分鍾)里的“0/15”表示從第0分鍾開始,每15分鍾執行一次。也可以 20-59/3,從20分到59分每3分鍾執行一次

二、寫完重啟cron:
  sudo service cron restart 或者 /etc/init.d/cron restart     //centos下是crond

三、對於Yii下使用cron:

  重點三個地方

  A/  protected/config/console.php  -->里面db注釋的部分開啟

  B/ 自己建commands/TestCommand.php

  C/ yiic.php里面的引用地址的配置,細節見補充

寫一個運行成功的實例

    */1 * * * * php /home/user_name/sites/project_name/yiicmd.php test 'datetime'

    site為用戶名下的php運行目錄,project_name為項目名。yiicmd.php 自己寫的文件,與protected下的yiic.php一樣,但里面yii的引用路徑要改~

關於cron的補充

  cron的實際存放地址:看着好像etc下面有cron.d   cron.daily  cron.hourly  crontab,這么多crontab的文件,但實際上:

    linux:/var/spool/cron     // 用 crontab -l 打開看到的文件,就是它

    freebsd:/var/cron/tabs

     mac 下,crontab也是ok的,好像都不需要重啟什么

       */1 * * * *  echo "wagaga" >> /Users/lia****uan/test.txt   //每一分鍾執行一次,“ >>”表示輸出到 

  

 

關於yiic補充

yiic 默認只是一個php文件,需要用php命令運行:php yiic 或者 php yiic.php

也可以用:chmod +x yiic 命令直接將yiic改成可運行的。 便可直接進入cd protected寫:yiic help。

 


參考資料:
http://www.yiiframework.com/extension/yii-crontab/               //關於yiicmd.php位置無所謂,都可以,關鍵里面定位要注意。這個插件幾乎無用,因為它無法寫入crontab中,要改掉各種文件的寫權限,太煩。
http://linux.chinaitlab.com/unix/795992.html                          //講的也比較好,簡潔
http://blog.csdn.net/tianlesoftware/article/details/5315039   //講的一般,比較細

 

幾個典型時間例子:
每五分鍾執行 */5 * * * *
每小時執行 0 * * * *
每天執行 0 0 * * *
每周執行 0 0 * * 0
每月執行 0 0 1 * *
每年執行 0 0 1 1 *

5 * * * *每小時第5分鍾執行
*/5 * * * *每5分鍾執行
0 2 * * * 每天凌晨2點執行

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM