首先說說cron它是一個linux下的定時執行工具。根使用者以外的使用者可以使用 crontab 工具來配置 cron 任務。所有使用者定義的 crontab 都被儲存在/var/spool/cron 目錄中,并使用建立它們的使用者身份來執行。要以某使用者身份建立一個 crontab 項目,登入為該使用者,然後鍵入 crontab -e 指令來編輯該使用者的 crontab。該檔案使用的格式和 /etc/crontab 相同。當對 crontab 所做的改變被儲存後,該 crontab 檔案就會根據該使用者名被儲存,并寫入檔案 /var/spool/cron/username 中。cron 守護程序每分鐘都檢查 /etc/crontab 檔案、etc/cron.d/ 目錄、以及 /var/spool/cron 目錄中的改變。如果發現了改變,它們就會被載入記憶體。這樣,當某個 crontab 檔案改變後就不必重新啟動守護程序了。
安裝crontab:
yum install crontabs
說明:
/sbin/service crond start //啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重新開機服務
/sbin/service crond reload //重新載入配置
檢視crontab服務狀态:service crond status
手動啟動crontab服務:service crond start
檢視crontab服務是否已設定為開機啟動,執行指令:ntsysv
加入開機自動啟動: chkconfig –level 35 crond on
crontab指令:
功能說明:設定計時器。
語 法:crontab [-u <使用者名稱>][配置檔案] 或 crontab [-u <使用者名稱>][-elr]
補充說明:cron是一個常駐服務,它提供計時器的功能,讓使用者在特定的時間得以執行預設的指令或程式。隻要使用者會編輯計時器的配置檔案,就可以使 用計時器的功能。其配置檔案格式如下:
Minute Hour Day Month DayOFWeek Command
參數:
-e 編輯該使用者的計時器設定。
-l 列出該使用者的計時器設定。
-r 删除該使用者的計時器設定。
-u<使用者名稱> 指定要設定計時器的使用者名稱。
crontab 格式:
基本格式 :
分鐘 小時 日 月 星期 指令
* * * * * *
第1清單示分鐘1~59 每分鐘用*或者 */1表示
第2清單示小時1~23(0表示0點)
第3清單示日期1~31
第4列 表示月份1~12
第5列辨別号星期0~6(0表示星期天)
第6列是要運作的指令
記住幾個特殊符号的含義:
“*”代表取值範圍内的數字,
“/”代表”每”,
“-”代表從某個數字到某個數字,
“,”分開幾個離散的數字
# Use the hash sign to prefix a comment
# +—————- minute (0 – 59)
# | +————- hour (0 – 23)
# | | +———- day of month (1 – 31)
# | | | +——- month (1 – 12)
# | | | | +—- day of week (0 – 7) (Sunday=0 or 7)
# | | | | |
# * * * * * command to be executed
crontab幾個例子如下:
(1)第一個例子。
30 21 * * * /etc/init.d/nginx restart
每晚的21:30重新開機 nginx。
(2)第二個例子,也就是本教程測試的例子
* * * * * /usr/bin/php -f /root/test.php >> test.log
每一分鐘執行/root/test.php檔案,将結果輸出到test.log中。
完成了上面基礎工作後,就來看看怎麼使用crontab定時執行PHP腳本:
(1)我在/root下建立test.php檔案,内容如下:
<?php
#!/usr/bin/php -q
echo date('Y-m-d H:i:s')."from http://www.phpddt.com \n";
?>
說明:你可以用whereis php查找php執行檔案位置。
(2)然後crontab -e編寫如下shell:
* * * * * /usr/bin/php -f /root/test.php >> test.log
說明:test.php必須為可執行檔案:chmod +x test.php
測試結果很正常,截圖如下:

當然你可以用使用crontab -e繼續添加任務,在/var/spool/cron下你可以看到一個root檔案。
windows下直接用windows計劃任務,通過bat打開網頁就可以了,不像linux這麼複制。
github:https://github.com/lensh