Cron 表示式,計畫任務中的戰鬥機

2022-08-30 23:39:25 字數 3343 閱讀 7378

乙個cron表示式有至少6個(也可能7個)有空格分隔的時間元素。

按順序依次為

1. 秒(0~59)

2. 分鐘(0~59)

3. 小時(0~23)

4. 天(月)(0~31,但是你需要考慮你月的天數)

5. 月(0~11)

6. 天(星期)(1~7 1=sun 或 sun,mon,tue,wed,thu,fri,sat)

7. 年份(1970-2099)

其中每個元素可以是:

乙個值(如6),

乙個連續區間(9-12),

乙個間隔時間(8-18/4)(/表示每隔4小時),

乙個列表(1,3,5),萬用字元。

備註: 由於"月份中的日期"和"星期中的日期"這兩個元素互斥的,必須要對其中乙個設定?.

學習例子:

0 0 10,14,16 * * ?               每天上午10點,下午2點,4點

0 0/30 9-17 * * ?                朝九晚五工作時間內每半小時

0 0 12 ? * wed                表示每個星期三中午12點

0 0 12 * * ?                 每天中午12點觸發 

0 15 10 ? * *                                         每天上午10:15觸發 

0 15 10 * * ?                                         每天上午10:15觸發 

0 15 10 * * ? *                                      每天上午10:15觸發 

0 15 10 * * ?                                        2005 2023年的每天上午10:15觸發 

0 * 14 * * ?                 在每天下午2點到下午2:59期間的每1分鐘觸發 

0 0/5 14 * * ?                在每天下午2點到下午2:55期間的每5分鐘觸發 

0 0/5 14,18 * * ?              在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發 

0 0-5 14 * * ?                在每天下午2點到下午2:05期間的每1分鐘觸發 

0 10,44 14 ? 3 wed             每年三月的星期三的下午2:10和2:44觸發 

0 15 10 ? * mon-fri                              周一至周五的上午10:15觸發 

0 15 10 15 * ?                                      每月15日上午10:15觸發 

0 15 10 l * ?                                        每月最後一日的上午10:15觸發 

0 15 10 ? * 6l                                      每月的最後乙個星期五上午10:15觸發 

0 15 10 ? * 6l 2002-2005                       2023年至2023年的每月的最後乙個星期五上午10:15觸發 

0 15 10 ? * 6#3                                    每月的第三個星期五上午10:15觸發 

有些子表示式能包含一些範圍或列表

例如:子表示式(天(星期))可以為 「mon-fri」,「mon,wed,fri」,「mon-wed,sat」

「*」字元代表所有可能的值

因此,「*」在子表示式()裡表示每個月的含義,「*」在子表示式(天(星期))表示星期的每一天

「/」字元用來指定數值的增量

例如:在子表示式(分鐘)裡的「0/15」表示從第0分鐘開始,每15分鐘

在子表示式(分鐘)裡的「3/20」表示從第3分鐘開始,每20分鐘(它和「3,23,43」)的含義一樣

「?」字元僅被用於天(月)和天(星期)兩個子表示式,表示不指定值

當2個子表示式其中之一被指定了值以後,為了避免衝突,需要將另乙個子表示式的值設為「?」

「l」 字元僅被用於天(月)和天(星期)兩個子表示式,它是單詞「last」的縮寫,

但是它在兩個子表示式裡的含義是不同的。

在天(月)子表示式中,「l」表示乙個月的最後一天

在天(星期)自表示式中,「l」表示乙個星期的最後一天,也就是sat

如果在「l」前有具體的內容,它就具有其他的含義了

例如:「6l」表示這個月的倒數第6天,「fril」表示這個月的最乙個星期五

注意: 在使用「l」引數時,不要指定列表或範圍,因為這會導致問題 字段

允許值允許的特殊字元

0-59

, - * /

0-59

, - * /

小時

0-23

, - * /

日期

1-31

, - * ? / l w c

月份

1-12 或者 jan-dec

, - * /

星期

1-7 或者 sun-sat

, - * ? / l c #

年(可選)

留空, 1970-2099

, - * /

計畫任務的安排cron

1 迴圈執行的計畫任務linux下面有atd和crond兩種計畫任務,其中,atd服務使用的at命令只能執行一次,而crond服務使用的crontab定義的命令,是迴圈作用的,所以crond才符合我們的要求。crontab支援兩種狀態 一 直接編寫計畫任務 二 使用目錄的方式,放在目錄裡面的指令碼 ...

linux中的cron計畫任務服務

一 什麼是crontab 簡而言之,crontab提供了允許給定的任務以一定的間隔在後台執行的機制。crontab的使用者手冊中推薦每乙個命令使用絕對路徑。對於使用者的cron計畫,都會存放到 var spool cron crontabs目錄中,該目錄下有 個與使用者名稱一致的任務檔案 系統的cr...

Linux中的計畫任務(at和cron)

簡介 作用 計畫任務主要是做一些週期性的任務,目前最主要的用途是定期備份資料。一次性排程執行 語法格式 at at 示例 now min 幾分鐘後 teatime tomorrow teatime is 16 00 下午茶時間 noon days 第幾天中午 6pm february 26 2020...