Linux crontab 定時執行任務
一 簡介
使用crontab你可以在指定的時間執行一個shell腳本或者一系列Linux命令。例如最近項目中需要每隔10分鐘去查詢一下訂單中的推送失敗的訂單并將其重新推送一遍。
二 crontab用法
crontab: usage error: unrecognized option
usage: crontab [-u user] file
crontab [ -u user ] [ -i ] { -e | -l | -r }
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
crontab –e : 修改 crontab 文件. 如果文件不存在會自動創建。
crontab –l : 顯示 crontab 文件。
crontab -r : 刪除 crontab 文件。
crontab -i : 使用 crontab 命令前提醒用戶。
三 crontab文件格式
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
minute: 區間為 0 – 59
hour: 區間為0 – 23
day-of-month: 區間為0 – 31
month: 區間為1 – 12. 1 是1月. 12是12月.
Day-of-week: 區間為0 – 7. 周日可以是0或7.
四 crontab示例
1. 在 12:01 a.m 運行,即每天凌晨過一分鐘。這是一個恰當的進行備份的時間,因為此時系統負載不大。
1 0 * * * /root/bin/backup.sh
2. 每個工作日(Mon – Fri) 11:59 p.m 都進行備份作業。
59 11 * * 1,2,3,4,5 /root/bin/backup.sh
下面例子與上面的例子效果一樣:
59 11 * * 1-5 /root/bin/backup.sh
3. 每5分鐘運行一次命令
*/5 * * * * /root/bin/check-status.sh
4. 每個月的第一天 1:10 p.m 運行
10 13 1 * * /root/bin/full-backup.sh
5. 每個工作日 11 p.m 運行。 0 23 * * 1-5 /root/bin/incremental-backup.sh