定時任務的 cron 表達式
一、什么時 cron 表達式
Cron表達式是一種廣泛應用于Linux系統的時間表示格式,常用于定時任務的調度
。Cron表達式可以通過指定不同的時間參數,描述一個在 未來某個時間點執行的任務
。
二、Cron表達式語法
秒 分 時 日 月 周幾
表達式中每個字段的含義:
- 秒(0~59)秒的取值范圍為0到59。表示每分鐘的哪一秒鐘執行任務。
- 分(0~59)分的取值范圍為0到59。表示每小時的哪一分執行任務。
- 時(0~23)時的取值范圍為0到23。表示每天的哪一小時執行任務。
- 日(1~31)日的取值范圍為1到31,其中有些月份日數為30天或28天,所以當超出這些范圍時,Cron表達式會自動處理。
- 月(1~12)月的取值范圍為1到12。表示每年的哪一月執行任務。
- 周幾(0~7)周幾的取值范圍為0到7。
0和7都代表周日
,1到6依次代表周一到周六。如果同時指定了日和周幾,那么該任務會在滿足兩個條件時才執行。
三、Cron表達式特殊字符
- *:表示匹配所有可能的值。
- ?:只能用在日和周幾字段中,表示不關心具體是哪一天或哪一個星期幾,可以用于通配符。
- -:表示區間,如在小時字段中使用10-12表示10點到12點。
- ,:表示列表,如在周幾字段中使用MON,WED,FRI表示周一、周三和周五。
- /:表示遞增,如在秒字段中使用3/15表示從第3秒開始每隔15秒執行一次。
Cron表達式范例:
每隔5秒執行一次:*/5 * * * * ?
每隔1分鐘執行一次:0 */1 * * * ?
每天23點執行一次:0 0 23 * * ?
每天凌晨1點執行一次:0 0 1 * * ?
每月1號凌晨1點執行一次:0 0 1 1 * ?
每月最后一天23點執行一次:0 0 23 L * ?
每周星期天凌晨1點實行一次:0 0 1 ? * L
在26分、29分、33分執行一次:0 26,29,33 * * * ?
每天的0點、13點、18點、21點都執行一次:0 0 0,13,18,21 * * ?
從0時0分0秒開始,每隔1小時執行一次:0 0 0/1 * * ?