經常會需要一些週期性的定時處理任務,php不是常駐記憶體工作的,這時候linux的crontab就派上作用了,定時執行php程式。
市面上基本所有php框架都支援控制台程式,tp5、yii都有。當然也可以php**。
切入正題
參 數:
-e 編輯該使用者的計時器設定。
-l 列出該使用者的計時器設定。
-r 刪除該使用者的計時器設定。
-u《使用者名稱》 指定要設定計時器的使用者名稱。
開啟服務
service crond start
編輯任務
crontab -e
顯示任務列表
crontab -l
每分鐘執行
*/1 * * * * date >> /root/data.txt
每兩分鐘執行
*/2 * * * * date >> /root/data.txt
23點~7點每小時執行
0 23-7/1 * * * date >> /root/data.txt
23點~7點任何一分鐘執行
* 23-7/1 * * * date >> /root/data.txt
* 任何時候
a,b,c a或b或c時候
a-b a到b時候
*/a 每a執行一次
每次新增任務後,記得重啟任務服務,使之生效
service crond restart
crontab基本操作命令:
crontab -l // 列出某個使用者cron服務的詳細內容
crontab -e // 編輯某個使用者的cron服務
crontab -u // 設定某個使用者的cron服務,一般root使用者在執行這個命令的時候需要此引數
crontab -r // 刪除沒個使用者的cron服務
比如說root檢視自己的cron設定:crontab -u root -l
基本用法:
crontab檔案格式:
o minute: 區間為 0 – 59
o hour: 區間為0 – 23
o day-of-month: 區間為0 – 31
o month: 區間為1 – 12. 1 是1月. 12是12月.
o day-of-week: 區間為0 – 7. 週日可以是0或7.
在以上各個欄位中,還可以使用以下特殊字元:
星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。
逗號(,):可以用逗號隔開的值指定乙個列表範圍,例如,「1,2,5,7,8,9」
中槓(-):可以用整數之間的中槓表示乙個整數範圍,例如「2-6」表示「2,3,4,5,6」
正斜線(/):可以用正斜線指定時間的間隔頻率,例如「0-23/2」表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鐘執行一次。
示例:下面是每隔多少分鐘,每隔多少小時,每天/每週/每月/每年的crontab的歸納總結
每五分鐘執行 */5 * * * *每五小時執行 0 */5 * * *每天執行 0 0 * * *每週執行 0 0 * * 0每月執行 0 0 1 * *每年執行 0 0 1 1 *
如果說是每個月的每隔10天來執行某個指令碼的話,同樣可以寫成:
# 每個月的1號,11號,21號,31號,執行http服務重啟
0 0 */10 * * /etc/init.d/service restart
# 下午6點到早上6點,每隔15分鐘執行一次指令碼
0,15,30,45 18-06 * * * /bin/bash /home/script.sh > /dev/null 2>&1
# 每兩小時,重啟一次服務
* */2 * * * /etc/init.d/service restart
# 每天凌晨過一分鐘。這是乙個恰當的進行備份的時間,因為此時系統負載不大。
1 0 * * * /root/bin/back.sh
# 每個工作日(mon – fri) 11:59 p.m 都進行備份作業。
59 11 * * 1,2,3,4,5 /root/bin/test.sh
下面例子與上面的例子效果一樣:
59 11 * * 1-5 /root/bin/test.sh
# 每5分鐘執行一次命令
*/5 * * * * /root/bin/test.sh
定時任務使用
1.我本地字符集異常,導致開啟定時任務亂碼 bash warning setlocale lc ctype cannot change locale utf 8 no such file or directory 因為我終端為zsh,所以需要 vim zshrc 設定字符集 export lc al...
centos crontab(定時任務) 使用
一 介紹 crontab命令的功能是在一定的時間間隔排程一些命令的執行。當安裝完成作業系統之後,預設便會啟動此任務排程命令。crond命令每分鐘會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。三 cron檔案 1 檔案格式 minute hour day month dayofw...
crontab定時任務
今天工作項有個任務是讓ubuntu定時執行某個指令碼,對postgresql資料庫進行定時備份。linux 系統都有個cron定時任務的機制。今天做些筆記,以便日後翻查。注意 cron機制是有個使用者系統的概念的,即分系統cron和使用者cron,每個使用者所執行的cron任務可能不同。1.以roo...