Linux下使用cron系統(tǒng)服務(wù)定時執(zhí)行任務(wù)
Linux系統(tǒng)中有很多的系統(tǒng)級任務(wù)在后臺自動執(zhí)行,而負(fù)責(zé)調(diào)度這些任務(wù)的便是cron服務(wù)的守護(hù)進(jìn)程crond,當(dāng)我們需要定時執(zhí)行自己的任務(wù)時便可以將所要執(zhí)行的任務(wù)加入到crond的任務(wù)列表中來讓cron
Linux系統(tǒng)中有很多的系統(tǒng)級任務(wù)在后臺自動執(zhí)行,而負(fù)責(zé)調(diào)度這些任務(wù)的便是cron服務(wù)的守護(hù)進(jìn)程crond,當(dāng)我們需要定時執(zhí)行自己的任務(wù)時便可以將所要執(zhí)行的任務(wù)加入到crond的任務(wù)列表中來讓crond自行調(diào)度執(zhí)行,接下來便為大家介紹如何來讓crond自動執(zhí)行我們的任務(wù)。
確定任務(wù)和編寫腳本
首先,我們要確定所要執(zhí)行的任務(wù)。如果任務(wù)比較簡單的話盡量使用單行命令直接搞定。如果任務(wù)比較復(fù)雜的話便要編寫Shell腳本,通過crond調(diào)用該腳本來執(zhí)行。這一步相當(dāng)重要,要反復(fù)確定最終的命令或腳本能夠準(zhǔn)確地完成我們的任務(wù)。
編輯任務(wù)調(diào)度表
使用`crontab -e`命令編輯任務(wù)調(diào)度表,打開后的調(diào)度表如圖所示。表中每一行代表一個要執(zhí)行的任務(wù),每一行又分為六個字段,從左到右依次為:分鐘、小時、日期、月份、星期、所要執(zhí)行的命令或腳本。
調(diào)度表字段取值范圍
各字段的取值既可以為特定數(shù)字,也可以為指定的特殊字符。各字段的取值范圍如下:
- 分鐘:0-59
- 小時:0-23
- 日期:1-31
- 月份:1-12
- 星期:0-7,0和7都代表星期天
特殊字符代表的意義為:
- *(星號):代表任意時刻。例如 `8 0 * * * cmd` 表示每天8點整執(zhí)行cmd命令。
- ,(逗號):代表并列的時段。例如 `0 3,6,9 * * * cmd` 表示每天3點整、6點整和9點整執(zhí)行cmd命令。
- -(減號):代表時段范圍。例如 `30 20-23 * * * cmd` 表示每天20點到23點之間的每個小時的第30分鐘執(zhí)行cmd命令。
- /(斜線):代表每n個時間間隔執(zhí)行一次。例如 `*/10 * * * * cmd` 表示每十分鐘執(zhí)行一次cmd命令。
查詢和刪除任務(wù)
確定任務(wù)是否已經(jīng)加入調(diào)度隊列,可以使用`crontab -l`來進(jìn)行查詢。若要刪除某一項任務(wù),可以使用`crontab -e`編輯刪去任務(wù)所在行;若要刪除全部任務(wù),可以使用`crontab -r`命令。