Linux下使用cron系統(tǒng)服務定時執(zhí)行任務
Linux系統(tǒng)中有很多的系統(tǒng)級任務在后臺自動執(zhí)行,而負責調(diào)度這些任務的便是cron服務的守護進程crond,當我們需要定時執(zhí)行自己的任務時便可以將所要執(zhí)行的任務加入到crond的任務列表中來讓cron
Linux系統(tǒng)中有很多的系統(tǒng)級任務在后臺自動執(zhí)行,而負責調(diào)度這些任務的便是cron服務的守護進程crond,當我們需要定時執(zhí)行自己的任務時便可以將所要執(zhí)行的任務加入到crond的任務列表中來讓crond自行調(diào)度執(zhí)行,接下來便為大家介紹如何來讓crond自動執(zhí)行我們的任務。
確定任務和編寫腳本
首先,我們要確定所要執(zhí)行的任務。如果任務比較簡單的話盡量使用單行命令直接搞定。如果任務比較復雜的話便要編寫Shell腳本,通過crond調(diào)用該腳本來執(zhí)行。這一步相當重要,要反復確定最終的命令或腳本能夠準確地完成我們的任務。
編輯任務調(diào)度表
使用`crontab -e`命令編輯任務調(diào)度表,打開后的調(diào)度表如圖所示。表中每一行代表一個要執(zhí)行的任務,每一行又分為六個字段,從左到右依次為:分鐘、小時、日期、月份、星期、所要執(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命令。
查詢和刪除任務
確定任務是否已經(jīng)加入調(diào)度隊列,可以使用`crontab -l`來進行查詢。若要刪除某一項任務,可以使用`crontab -e`編輯刪去任務所在行;若要刪除全部任務,可以使用`crontab -r`命令。