首先說說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 文件改變後就沒必要從新啓動守護進程了。php
安裝crontab:linux
yum install crontabsnginx
說明:
/sbin/service crond start //啓動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啓服務
/sbin/service crond reload //從新載入配置shell
查看crontab服務狀態:service crond statuswindows
手動啓動crontab服務:service crond start工具
查看crontab服務是否已設置爲開機啓動,執行命令:ntsysv測試
加入開機自動啓動:
chkconfig –level 35 crond onspa
crontab命令:rest
功能說明:設置計時器。code
語 法: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這麼複製。