前言
什么是定時任務呢?
指定在某一段時間內的某一時刻循環執行任務
往往在自動化執行程序的場景下應用非常廣泛。
執行定時任務有哪些方式呢?
可以使用jenkins持續集成,定時執行任務。
在自動執行大型應用程序上應用廣泛
不夠靈活,學習成本較高
linux中可以使用crontab
易學,效率高,輕量級。
對於shell腳本的自動執行應用廣。
基本操作
1.crontab定時任務格式
* * * * * 執行命令或者shell腳本的絕對路徑
- 第一個*號處:代表分鍾(0-59)
- 第二個*號處:代表小時(0-23)
- 第三個*號處:代表一個月中的第幾天(1-31),1代表1號
- 第四個*號處:代表一年中的第幾月(1-12),1代表1月
- 第五個*號處:代表一周中的第幾天(0-6),0代表周日,6代表周六
2.符號含義
* 代表任意值 , 列取單獨多個值 - 列取連續多個值 / 取值步長(“每”)
3.各種形式實例
# 每個整點過5分鍾時執行 /usr/local/bin/one_script.sh 腳本 # 例如:12:05:00、13:05:00、14:05:00、15:05:00、16:05:00等 5 * * * * /usr/local/bin/one_script.sh # 每過5分鍾執行 /usr/local/bin/one_script.sh 腳本 # 例如:11:30:00、11:35:00、11:40:00、11:45:00、11:50:00等 */5 * * * * /usr/local/bin/one_script.sh # 在每個小時的前半小時內每過5分鍾執行 /usr/local/bin/one_script.sh 腳本 # 例如:12:01:00、12:06:00、12:11:00、... 13:01:00、13:06:00等 1-30/5 * * * * /usr/local/bin/one_script.sh # 在每天凌晨4點執行 /usr/local/bin/one_script.sh 腳本 # 例如:2020-04-25 04:00:00、2020-04-26 04:00:00、2020-04-27 04:00:00等 0 4 * * * /usr/local/bin/one_script.sh # 每個月10號凌晨4點執行 /usr/local/bin/one_script.sh 腳本 # 例如:2020-05-10 04:00:00、2020-06-10 04:00:00、2020-07-10 04:00:00等 0 4 10 * * /usr/local/bin/one_script.sh # 在5月份1~2號,每天凌晨4點執行 /usr/local/bin/one_script.sh 腳本 # 例如:2020-05-01 04:00:00、2020-05-02 04:00:00、2021-05-01 04:00:00等 0 4 1-2 5 * /usr/local/bin/one_script.sh # 在每周三凌晨4點執行 /usr/local/bin/one_script.sh 腳本 # 例如:2020-04-29 04:00:00、2020-05-06 04:00:00、2020-05-13 04:00:00等 0 4 * * 3 /usr/local/bin/one_script.sh # 在工作日(周一到周五)凌晨4點執行 /usr/local/bin/one_script.sh 腳本 # 例如:2020-04-27 04:00:00、2020-04-28 04:00:00、2020-04-29 04:00:00、2020-04-30 04:00:00、2020-05-01 04:00:00等 0 4 * * 1-5 /usr/local/bin/one_script.sh # 在周一、周三、周五,凌晨4點執行 /usr/local/bin/one_script.sh 腳本 # 例如:2020-04-27 04:00:00、2020-04-29 04:00:00、2020-05-01 04:00:00等 0 4 * * 1,3,5 /usr/local/bin/one_script.sh
三、在Linux上編寫定時任務
- 在命令行中執行(以root用戶登錄)
crontab -e
- 會打開一個文件,按字母 i ,進入編輯模式,輸入定時任務表達式
0 4 * * 1,3,5 /usr/local/bin/one_script.sh
- 定時執行的腳本,一定要使用絕對路徑
- 保存文件
- 按 :wq 即可
- 查看是否創建成功
crontab -l