定時任務 Cron表示式介紹

2021-10-14 15:33:34 字數 1506 閱讀 3993

在公司專案上日誌輸出看到了定時任務,之前在學習linux的時候有過了解定時任務,但是不太深入,這裡再來學習一波,同時做個筆記。

定時任務:字面意思就是在某個時間所處理的任務。這個可以通過設定讓其自動化的完成,不需要人工來實現,極大的方便了日常工作。比如資料庫檔案在每天凌晨的時候備份乙份,難不成還需要大半夜的爬起來來手動備份嗎,定時任務解決了這一難題。

crond是linux系統中用來定期執行命令或指定程式任務的一種服務或軟體。可以滿足週期性執行任務的需求

corn表示式格式為七個域,如:

秒 分 時 日 月 周 年

每乙個域之間空格隔開,不指定「年」域時,年域可省略不寫,如:

秒 分 時 日 月 周

1、所有域均可用「,」,「-」,「」,「/」

, x,y表示x和y

- x-y表示x到y

表示每time

/ x/y表示從x起,每隔y

2、「日」域另有「?」,「l」,「w」,「c」

? 表示不指定「日」域的值。規則是指定「周」域,則「日」域必須為「?」。反之,指定「日」域,則「周」域必須為「?」。如0 0 12 ? * mon 或 0 0 12 1 * ?

l 2種寫法。一,表示月末幾天,如2l, 表示月末的2天。二,表示月末倒數第幾天,如l-3,表示月末倒數第3天。

w 表示臨近某日的工作日,如15w,表示最接近15號的工作日,可能是15號(剛好是工作日)、15號前(剛好週六)或15號後(剛好週日)。

c 表示和calendar計畫關聯的值,如1c表示,1日或1日後包括carlendar的第一天。

lw l和w的組合,只能出現在"日"域中。表示某月最後乙個工作日,不一定是周五(詳細見結尾ps)。

3、「周」域另有「?」,「l」,「#」,「c」

? 表示不指定「周」域。規則是指定「日」域值,則「周」域值必須為「?」。反之,指定「周」域值,則「日」域值必須為「?」。如0 0 12 1 * ? 或 0 0 12 ? * mon

l 表示某月的最後乙個週幾,如1l, 表示某月的最後乙個週日(1表示週日),7l,表示某月的最後乙個週六(7表示週六)。

# 只能出現在"周"域中,表示第幾個週幾,x#y,y表示第幾個,x表示周的值,如6#2,表示第2個周五(6表示周五)。

c 表示和calendar計畫關聯的值,如1c表示,週日或週日後包括carlendar的第一天。

####注意####

「日域」域中,l和w組合為「lw」時,網上有很多種定義,比如:

說法一:lw表示某月的最後乙個工作日

說法二:lw某月最後一周的最後乙個工作日,即周五

本文參考學習至

定時任務cron表示式

cron表示式是乙個字串,字串以5或6個空格隔開,分為6或7個域,每乙個域代表乙個含義,cron有如下兩種語法格式 seconds minutes hours dayofmonth month dayofweek year或 seconds minutes hours dayofmonth mont...

定時任務Cron表示式

cron表示式是由空格分隔的6或7個域組成的字串。域中可以包含任何允許的值,包括含有特殊字元的組合值。cron表示式可以有如下兩種格式 實際使用中為了簡便大多使用6位 這些域如下所示 域是否必須 允許的值 允許的特殊字元 秒 seconds 是0 59 分 minutes 是0 59 時 hours...

定時任務 Cron表示式

cron表示式是乙個表示時間週期的字串。分為6或7個域,每乙個域代表乙個含義。驗證工具 cron有如下兩種語法格式 格式1 秒分 時天 月 月天 星期 年格式2 秒分 時天 月 月天 星期 每乙個域可出現的字元如下 格式 秒分時 天 月 月天 星期 年可出現字元 l w c l c 有效整數 0 5...