本篇重點
- cron 表達式(排程時間)生成工具
- cron 表達式轉換工具
- 介紹 cron 和 cron 表達式
- cron 表達式符號語法使用方式
- 查詢所有/指定排程(crontab)的方法
- 新增/修改/刪除排程(crontab)的方法
cron 表達式(排程時間)生成工具
- 從每個時間分類頁籤挑選要設定時間
- 依分類規則輸入
- 顯示 5 欄位格式的 cron 表達式,分別是分鐘(minute)、小時(hour)、日期(DOM - dayOfMonth)、月份(month)、星期(DOW - dayOfWeek),例如:
5 0 * * 1
- 設定「從哪個時間點開始」每隔多少單位執行一次,產生
起始值/間隔
的 cron 語法 *
表示每個可能的時間點,如果設定*
並輸入執行間隔,*
表示從最小值開始
設定一個區間,表示排程任務會在這段時間內「每個單位都執行一次」,產生 最小值-最大值
的 cron 語法
設定執行任務的「具體時間點」,可使用「逗號 ,
」同時選擇多個時間,產生 時間點,時間點,時間點
的 cron 語法
- 設定「從哪個時間點開始」每隔多少單位執行一次,產生
起始值/間隔
的 cron 語法 *
表示每個可能的時間點,如果設定*
並輸入執行間隔,*
表示從最小值開始
設定一個區間,表示排程任務會在這段時間內「每個單位都執行一次」,產生 最小值-最大值
的 cron 語法
設定執行任務的「具體時間點」,可使用「逗號 ,
」同時選擇多個時間,產生 時間點,時間點,時間點
的 cron 語法
- 設定「從哪個時間點開始」每隔多少單位執行一次,產生
起始值/間隔
的 cron 語法 *
表示每個可能的時間點,如果設定*
並輸入執行間隔,*
表示從最小值開始
設定一個區間,表示排程任務會在這段時間內「每個單位都執行一次」,產生 最小值-最大值
的 cron 語法
設定執行任務的「具體時間點」,可使用「逗號 ,
」同時選擇多個時間,產生 時間點,時間點,時間點
的 cron 語法
- 設定「從哪個時間點開始」每隔多少單位執行一次,產生
起始值/間隔
的 cron 語法 *
表示每個可能的時間點,如果設定*
並輸入執行間隔,*
表示從最小值開始
設定一個區間,表示排程任務會在這段時間內「每個單位都執行一次」,產生 最小值-最大值
的 cron 語法
設定執行任務的「具體時間點」,可使用「逗號 ,
」同時選擇多個時間,產生 時間點,時間點,時間點
的 cron 語法
cron 表達式
* * * * *
說明
下次執行時間
cron 表達式工具使用範例
這邊示範如何使用 cron 表達式生成工具~
每天十二點半執行排程
切換到分鐘頁籤的固定間隔,某時刻輸入
30
切換到小時頁籤的固定間隔,某時刻輸入
12
每個星期六,每小時每15分鐘執行排程
切換到分鐘頁籤的固定間隔,某時刻輸入
*
,執行間隔輸入15
切換到星期頁籤的固定間隔,輸入
6
一到三月的一號和十五號,00:00 執行排程
切換到分鐘頁籤的固定間隔,某時刻輸入
0
切換到小時頁籤的固定間隔,某時刻輸入
0
切換到日期頁籤的指定時刻,某時刻輸入
1,15
切換到月份頁籤的區間範圍,最小值輸入
1
,最大值輸入3
什麼是 cron?
cron 是 Linux/Unix 系統中的一種排程工具,用來自動執行指定時間的任務,例如定時備份資料、寄送報表、執行維護腳本等。而 cron 的排程是透過 cron 表達式來定義執行的時間與頻率
cron 表達式的基本格式
1 | * * * * * <command> |
星號(*
)
表示每個可能的時間點。
例如 * * * * *
表示每分鐘都執行。
逗號(,
)
表示多個時間點。
例如:0 9,18 * * *
表示每天 9 點與 18 點各執行一次。
減號(-
)
表示時間的範圍。
例如:0 8-10 * * *
表示每天 8 點、9 點、10 點執行一次。
斜線(/
)
表示每個時間點間隔多少單位。
例如:0 */3 * * *
表示每 3 小時整點執行一次。
範例
cron 表達式 | 說明 |
---|---|
0 10 * * * | 每天早上 10:00 執行一次 |
*/15 * * * * | 每 15 分鐘執行一次 |
0 */2 * 1,10 * | 一月和十月每兩小時整點執行一次 |
0 12 * * 1-5 | 每週一到五中午 12:00 執行 (平日) |
0 0 1 * * | 每月 1 號的午夜 00:00 執行 |
0 22 * * 0,6 | 每週六、日晚上 10:00 執行 (假日) |
查詢 crontab 排程
查詢所有排程
1 | crontab -l |
查詢指定排程
1 | crontab -l | grep deploy |
新增/修改/刪除 crontab 排程
使用指令後會打開編輯器,直接在編輯器裡面新增/修改/刪除排程
1 | crontab -e |