首先說說cron,它是一個linux下的定時執(zhí)行工具。根用戶以外的用戶可以使用 crontab 工具來配置 cron 任務(wù)。所有用戶定義的 crontab 都被保存在/var/spool/cron 目錄中,并使用創(chuàng)建它們的用戶身份來執(zhí)行。
要以某用戶身份創(chuàng)建一個 crontab 項(xiàng)目,登錄為該用戶,然后鍵入 crontab -e 命令來編輯該用戶的 crontab。該文件使用的格式和 /etc/crontab 相同。當(dāng)對 crontab 所做的改變被保存后,該 crontab 文件就會根據(jù)該用戶名被保存,并寫入文件 /var/spool/cron/username 中。
cron 守護(hù)進(jìn)程每分鐘都檢查 /etc/crontab 文件、etc/cron.d/ 目錄、以及 /var/spool/cron 目錄中的改變。如果發(fā)現(xiàn)了改變,它們就會被載入內(nèi)存。這樣,當(dāng)某個 crontab 文件改變后就不必重新啟動守護(hù)進(jìn)程了。
1 | yum install crontabs |
操作說明:
1 2 3 4 | /sbin/service crond start // 啟動服務(wù) /sbin/service crond stop // 關(guān)閉服務(wù) /sbin/service crond restart // 重啟服務(wù) /sbin/service crond reload // 重新載入配置 |
查看crontab服務(wù)狀態(tài):
1 | service crond status |
手動啟動crontab服務(wù):
1 | service crond start |
加入開機(jī)自動啟動:
1 | chkconfig –level 35 crond on |
查看crontab服務(wù)是否已設(shè)置為開機(jī)啟動,執(zhí)行命令:
1 | ntsysv |
功能說明:設(shè)置計時器。
語 法:crontab [-u <用戶名稱>][配置文件] 或 crontab [-u <用戶名稱>][-elr]
補(bǔ)充說明:cron是一個常駐服務(wù),它提供計時器的功能,讓用戶在特定的時間得以執(zhí)行預(yù)設(shè)的指令或程序。只要用戶會編輯計時器的配置文件,就可以使 用計時器的功能。其配置文件格式如下:
Minute Hour Day Month DayOFWeek Command
參 數(shù):
基本格式 :
分鐘 | 小時 | 日 | 月 | 星期 | 命令 |
* | * | * | * | * | * |
記住幾個特殊符號的含義:
# 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
1 | 30 21 * * * /etc/init .d /nginx restart |
每晚的21:30重啟 nginx
1 | * * * * * /usr/bin/php -f /root/test .php >> test .log |
每一分鐘執(zhí)行/root/test.php文件,將結(jié)果輸出到test.log中
完成了上面基礎(chǔ)工作后,就來看看怎么使用crontab定時執(zhí)行PHP腳本:
1 2 3 4 | <?php #!/usr/bin/php -q echo date ( 'Y-m-d H:i:s' ). 'from http://levi.yii.so ' .PHP_EOL; ?> |
說明:你可以用whereis php查找php執(zhí)行文件位置。
1 | * * * * * /usr/bin/php -f /root/test .php >> test .log |
說明:test.php必須為可執(zhí)行文件:
1 | chmod +x test .php |
當(dāng)然你可以用使用crontab -e繼續(xù)添加任務(wù),在/var/spool/cron下你可以看到一個root文件。
聯(lián)系客服