Linux 系統排程 執行 PHP

1. 在linux輸入指令: crontab -e 進行系統排程編輯模式

2. 格式大概如下, 前面5個欄位分別是是執行的日期時間(分 時 日 月 年), 後面的路徑是要執行的程式, 以下的意思是指每天的凌晨12點會執行一次此程式:

 0 0 * * * /usr/local/www/awstats/cgi-bin/awstats.sh

3. 現在我們要排程執行PHP網頁, 因此需要用LINUX的PHP程式來執行PHP網頁, 指令如下:

30 23 * * * /usr/local/bin/php /home/xxx/public_html/mytesting.php >> /host/cron.log 2>&2

以上的指令含意是, 每天的晚上11點30分會使用PHP程式(路徑在/usr/local/bin/)來執行PHP網頁(路徑在/home/xxx/public_html/), 而後面的意思是執行完畢後的紀錄檔會延伸儲存在 /host/cron.log 裡面, 讓你知道執行的結果, 否則執行的狀況你是沒辦法直接看到的.(使用 * 的意思是不管何年何月何日, 若指定日期, 那就表示只會在該日期執行一次) 所以若要系統每天固定時間內替你執行程式, 就要把格式寫清楚囉, crontab的時間格式如下:

field              allowed values
—–             ————–
minute            0-59
hour               0-23
day of month   1-31
month            1-12 (or names, see below)
day of week    0-7 (0 or 7 is Sun, or use names)

 若想知道更詳細的資料, 可以輸入 man 5 crontab, 參考詳細的說明. 除此之外, 要例行執行程式, 寫法也可以如下:

string            meaning
——           ——-
@reboot        Run once, at startup.
@yearly         Run once a year, “0 0 1 1 *”.
@annually      (same as @yearly)
@monthly       Run once a month, “0 0 1 * *”.
@weekly        Run once a week, “0 0 * * 0”.
@daily           Run once a day, “0 0 * * *”.
@midnight      (same as @daily)
@hourly         Run once an hour, “0 * * * *”.

如果我想要每分鐘執行一次, 要怎麼寫?

*/1 * * * * /usr/local/bin/php /home/xxx/public_html/mytesting.php >> /host/cron.log 2>&2

*/1 就是讓你連續每分鐘執行一次的關鍵寫法.

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *