摘要
很多時(shí)候我們需要使用linux下的crontab來執(zhí)行一些定時(shí)任務(wù)。平時(shí)研究linux比較少,今天把遇到的問題整理了下分享。
crontab簡單介紹
1.常用命令
crontab -e 編輯添加定時(shí)信息
crontab -l 列表出當(dāng)前所有的定時(shí)任務(wù)
crontab -r 刪除任務(wù)
2.使用實(shí)例
Example of job definition:
.---------------- minute (0 - 59)
| .------------- hour (0 - 23)
| | .---------- day of month (1 - 31)
| | | .------- month (1 - 12) OR jan,feb,mar,apr ...
| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |
- user-name command to be executed
分 時(shí) 日 月 周 命令
第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時(shí)1~23(0表示0點(diǎn))
第3列表示日期1~31
第4列表示月份1~12
第5列標(biāo)識(shí)號(hào)星期0~6(0表示星期天)
第6列要運(yùn)行的命令
實(shí)例1:每1分鐘執(zhí)行一次myCommand
*/1 * * * * user-name command to be executed
* * * * * myCommand ---這個(gè)沒實(shí)際測試過
實(shí)例2:每小時(shí)的第3和第15分鐘執(zhí)行
3,15 * * * * myCommand
實(shí)例3:在上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行
3,15 8-11 * * * myCommand
實(shí)例4:每隔兩天的上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行
3,15 8-11 */2 * * myCommand
實(shí)例5:每周一上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行
3,15 8-11 * * 1 myCommand
**實(shí)例6:每晚的21:30重啟
**
30 21 * * * /etc/init.d/smb restart
實(shí)例7:每月1、10、22日的4 : 45重啟
45 4 1,10,22 * * /etc/init.d/smb restart
實(shí)例8:每周六、周日的1 : 10重啟
10 1 * * 6,0 /etc/init.d/smb restart
實(shí)例9:每天18 : 00至23 : 00之間每隔30分鐘重啟
0,30 18-23 * * * /etc/init.d/smb restart
實(shí)例10:每星期六的晚上11 : 00 pm重啟
0 23 * * 6 /etc/init.d/smb restart
實(shí)例11:每一小時(shí)重啟
* */1 * * * /etc/init.d/smb restart
實(shí)例12:晚上11點(diǎn)到早上7點(diǎn)之間,每隔一小時(shí)重啟
0 23-7 * * * /etc/init.d/smb restart
以上實(shí)例中我們很容易分析出這里包含了那些符號(hào)來分割時(shí)間。下面將是非常重要 注意環(huán)境變量問題
我們創(chuàng)建了一個(gè)crontab,但是這個(gè)任務(wù)卻無法自動(dòng)執(zhí)行,而手動(dòng)執(zhí)行這個(gè)任務(wù)卻沒有問題,這種情況一般是由于在crontab文件中沒有配置環(huán)境變量引起的。
crontab不屬于任何用戶,所以我們在腳本執(zhí)行要用到j(luò)ava或其他環(huán)境變量,腳本中涉及文件路徑時(shí)寫全局路徑。
test.sh,可以這樣創(chuàng)建一個(gè)sh文件來執(zhí)行。
!/bin/sh
source /etc/profile
export RUN_CONF=/home/platform/cbp/cbp_jboss.conf
/usr/local/jboss-4.0.5/bin/run.sh -c mev &
或者可嘗試在crontab中直接引入環(huán)境變量解決問題
0 * * * * . /etc/profile;/bin/sh /var/www/java/audit_no_count/bin/restart_audit.sh
可以在sh腳本中加入 source /etc/profile 來配置環(huán)境變量。