如何使用Linux的Crontab執行PHP腳本

近期寫了一個PHP腳本,須要天天執行,因而就想到了計劃任務,這個功能由於會比較經常使用,因此在此記下一筆。php

1、首先寫好你的PHP腳本,好比test.php,個人PHP腳本是須要網址訪問的,放在網站的根目錄,(如:http://www.aaa.com/test.php),固然你也能夠是其它路徑,此處路徑寫正確便可。
centos

2、找到你的crontab的文件位置,而且在其中調用你的PHP腳本瀏覽器

一、crontab的文件位置通常在/var/spool/cron/下,若是你是root用戶,那下面有個root文件,建議平常備份,避免誤刪除致使crontab 文件丟失;curl

二、打開root文件,添加調用PHP腳本命令
網站

    */5 * * * * /usr/bin/curl -o temp.txt https://www.aaa.com/test.php
url

    //第5分鐘執行一次test.php
spa

【備註:添加方式有多種,此處可自行選擇,如下列出幾種供你們參考:】命令行

(1):在Crontab中使用PHP執行腳本rest

00 * * * * /usr/local/bin/php /home/john/test2.php   //每小時執行一次test2.php日誌

/usr/local/bin/php爲PHP程序的路徑      /home/john/test2.php爲執行腳本的絕對路徑

(2):在Crontab中使用URL執行腳本

若是你的PHP腳本能夠經過URL觸發,你可使用lynx或curl或wget來配置你的Crontab。

方一:00 * * * * lynx -dump https://www.aaa.com/test.php 

           //每小時執行一次test.php

         【Lynx文本瀏覽器默認使用對話方式打開URL,咱們在lynx命令行中使用-dump選項來把URL的輸出轉換來標準輸出。】

方二:*/5 * * * * /usr/bin/curl -o temp.txt https://www.aaa.com/test.php  

            //使用CURL訪問URL來每5分執行一次test.php
          【Curl默認在標準輸出顯示輸出。使用」curl -o」選項,你也能夠把腳本的輸出轉儲到臨時文件。】

  方三:    */10 * * * * /usr/bin/wget -q -O temp.txt https://www.aaa.com/test.php

                //使用WGET訪問URL來每10分執行PHP腳本

              【-q選項表示安靜模式。」-O temp.txt」表示輸出會發送到臨時文件】

crontab用法

crontab的格式以下面:

f1 f2 f3 f4 f5 program

其中 f1 是表示分鐘,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執行程式的路徑。

  • 當 f1 爲 * 時表示每分鐘都要執行 program,f2 爲 * 時表示每小時都要執行程式,其他類推

  • 當 f1 爲 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 爲 a-b 時表示從第 a 到第 b 小時都要執行,其他類推

  • 當 f1 爲 */n 時表示每 n 分鐘個時間間隔執行一次,f2 爲 */n 表示每 n 小時個時間間隔執行一次,其他類推

  • 當 f1 爲 a, b, c,… 時表示第 a, b, c,… 分鐘要執行,f2 爲 a, b, c,… 時表示第 a, b, c…個小時要執行,其他類推

3、檢查是否執行腳本,如不成功,可到日誌查看

默認狀況下,crontab中執行的日誌寫在/var/log下,如:/var/log/cron /var/log/cron.1 /var/log/cron.2

如crontab 沒有成功,檢測crontab 服務是否啓動,

/etc/init.d/crond status   //查看狀態

/etc/init.d/crond restart   //重啓cron

cron 是系統守護進程,位置:/etc/init.d/crond參數:startstoprestartreload

相關文章
相關標籤/搜索