一媒楼、crontab
1.1 簡介
在Linux
中乐尊,周期執(zhí)行的任務(wù)一般由cron
這個守護進程來處理,可以在無需人工干預(yù)的情況下運行作業(yè)划址。
1.2 crontab服務(wù)
1.2.1查看crontab運行狀態(tài)
service crond status
1.2.2 啟動
要使用crontab定時器工具扔嵌,必須要啟動cron服務(wù):
service crond start 或者/etc/rc.d/init.d/crond start
1.2.3 加入開機自動啟動
chkconfig --level 35 crond on
查看是否已加入開機自啟動:
使用 chkconfig | grep crond
看在2 3 4 5
級別是不是on
crontab
默認就是開機啟動的,普通用戶要有sudo
的權(quán)限才能設(shè)置開機啟動夺颤。
二痢缎、執(zhí)行定時任務(wù)
編輯 crontab
:
crontab -e
2.1 crontab 命令格式
基本格式 :
* command
分 時 日 月 周 命令
2.2 crontab各參數(shù)說明
-e : 執(zhí)行文字編輯器來編輯crontab,內(nèi)定的文字編輯器是VI
00 00 * /usr/bin/php /xxx/Timer.php 每天凌晨執(zhí)行PHP腳本
設(shè)置后:crontab: installing new crontab
切記:一定要寫對/usr/bin/php
路徑世澜,可以用which php
查看
-r : 刪除目前的crontab
-l : 列出目前的crontab(查看專用)
-i : 會和-r 配合使用独旷,在刪除當前的crontab時詢問,輸入y 則刪除
注意:crontab是分用戶的寥裂,以誰登錄就會編輯到誰的crontab嵌洼。
2.3 crontab特殊的符號
""代表所有的取值范圍內(nèi)的數(shù)字。特別要注意哦封恰!
"/"代表每的意思麻养,如"/5"表示每5個單位
"-"代表從某個數(shù)字到某個數(shù)字
","分散的數(shù)字
crontab文件的使用示例:
30 21 * * * 表示每晚的21:30
45 4 1,10,22 * * 表示每月1、10诺舔、22日的4 : 45
10 1 * * 6,0 表示每周六鳖昌、周日的1 : 10
0,30 18-23 * * * 表示在每天18 : 00至23 : 00之間每隔30分鐘
0 23 * * 6 表示每星期六的11 : 00 pm
- */1 * * * 每一小時
- 23-7/1 * * * 晚上11點到早上7點之間,每隔一小時
- 8,13 * * 1-5 從周一到周五的上午8點和下午1點
0 11 4 * mon-wed 每月的4號與每周一到周三的11點
0 4 1 jan * 一月一號的4點
三混萝、crontab定時任務(wù)不執(zhí)排查
排查原因步驟如下:
首先遗遵,確認服務(wù)器是否開啟定時任務(wù)計劃服務(wù),只有root
用戶才能對crond
服務(wù)進行開啟和關(guān)閉
[root@mimvp-bj script]# service crond status
crond is stopped
[root@mimvp-bj script]# service crond start
Starting crond: [ OK ]
[root@mimvp-bj script]# service crond status
crond (pid 24577) is running…` </pre>
請確保crond
狀態(tài)為 is running…
如果crond
狀態(tài)為 crond is stopped
逸嘀,則定時任務(wù)服務(wù)不會生效故無法執(zhí)行
查看動態(tài)日志:
tail -f /var/log/cron` 例如:
00 19 * * * /usr/bin/curl http://www.ddd.com/index.php/Api/Message/classNotice
晚上19:00發(fā)送短信(已添加)
*/20 * * * * /usr/bin/curl http://www.aaa.com.cn/index.php/Api/Message/hfHandle
每20分鐘運行一次待回復(fù)超時處理(已添加)