00 背景
我們經常需要設置任務在某個時間或每隔一段時間運行。這時候任務調度工具可以解決問題此類定時調度任務場景問題。本篇介紹Linux系統中的cron任務調度工具。
01 cron介紹
在linux系統中,有一個cron表文件,它存儲了執行腳本路徑或者命令和執行腳本時間。cron任務調度工具便是通過它來實現定時調度任務。
那麼如何創建cron任務呢?
cron任務是存在於cron表中的,需要了解cron表的格式,格式爲:分 時 日 月 工作日 命令。
按照cron表格式,創建一個cron任務。首先要編輯cron表,使用crontab -e
命令編輯cron表。
*/01 * * * * /home/hadoop/training/cron/print.sh
上面便是在cron表中創建了一個cron任務,接下來只要保存cron表,便可以定時調度該任務。
02 模擬訓練
準備一個專門的任務文件存儲cron任務,然後運行crontab 任務文件
命令,便可以定時調度該任務。
創建任務文件:
touch task.cron
寫入以下內容:
*/01 * * * * /home/hadoop/training/cron/print.sh
上面的內容表示每分鐘調度一次任務。查看print.sh
腳本內容。
腳本的功能是將執行腳本時間重定向到print.log日誌文件中,我們使用下面命令監聽文件內容的變化,驗證是否成功進行定時調度。
tail -f /home/hadoop/training/cron/print.log
執行crontab task.cron
命令。觀察日誌文件內容變化。
可以看到cron定時調度任務成功。
補充
1.*
表示每個時間段都會執行。如果*
出現在對應"分 時 日 月 工作日"的位置,表示每分、每時、每日、每月、每個工作日。
2.如果在特定的時間段執行任務,就在對應格式位置上指定想要的時間段,並用逗號作爲分隔符。
例:
* * 20,21 * * /home/hadoop/training/cron/print.sh
表示每個月20、21號執行任務。
3、如果想在特定的時間間隔執行任務,可以在對應格式位置上使用*/
。
例:
*/01 * * * * /home/hadoop/training/cron/print.sh
表示每隔一分鐘執行一次任務。