Linux——任務調度(crontab命令)

在實際工作中,系統的定時任務一般都是需要重複執行的,這就需要使用 crontab 命令來執行循環定時任務。而crontab 命令需要crond服務支持,crond是在Linux下用來週期性的執行某些任務的一個守護線程。和Windows中的計劃任務類似。而這種系統在某個時間執行特定的命令或程序就是任務調度。
Linux下任務調度可分爲兩類:
系統任務工作調度:系統週期性所要執行的工作。如:寫緩存數據到硬盤、清理日誌等。
用戶任務調度:用戶定期要執行的工作。如:數據庫的備份。

  • crontab [選項]
     		常用選項:
     				-e	: 編輯crontab定時任務
     				-l  : 查詢crontab任務
     				-r  : 刪除當前用戶所有的crontab任務
              service crond restart -----重啓任務調度
    

實例: 每分鐘執行 詳細遍歷 etc 目錄下的文件 並將遍歷信息寫入另外一個文件
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
以上步驟詳細解釋:
1> 執行 crontab -e 命令,打開一個空文件,操作方式和 vi 類似。
2> 將任務( */1 * * * * ls -l /etc >> home/liang/Linux_Study/to.txt )輸入到調度文件 。保存調度文件並退出。
3> 至此後,每一分鐘都會自動的調用 ls -l /etc >> home/liang/Linux_Study/to.txt。
crontab -e 命令時每個用戶都可以執行的命令,不同的用戶可以執行自己的定時任務,這就是用戶任務調度 。 這個定時任務實際就會寫入 /var/spool/cron/ 目錄中,每個用戶的定時任務用自己的用戶名進行區分。

5個“*”佔位符的具體含義
項目 含義 範圍
第一個“*” 一小時當中的第幾分鐘 0~59
第二個“*” 一天當中的第幾小時 0~23
第三個“*” 一個月當中的第幾天 1~31
第四個“*” 一年當中的第幾個月 1~12
第五個“*” 一週當中的星期幾 0~7(0和7都代表星期日)
時間特殊符號
特殊符號 含義
*(星號) 代表任何時間。比如第一個"*"就代表一小時種每分鐘都執行一次的意思。
,(逗號) 代表不連續的時間。比如"0 8,12,16***命令"就代表在每天的 8 點 0 分、12 點 0 分、16 點 0 分都執行一次命令。
-(中槓) 代表連續的時間範圍。比如"0 5 ** 1-6命令",代表在週一到週六的凌晨 5 點 0 分執行命令。
/(正斜線) 代表每隔多久執行一次。比如"/10***命令",代表每隔 10 分鐘就執行一次命令。
crontab舉例
時間 含義
45 22 ***命令 在 22 點 45 分執行命令
0 17 ** 1命令 在每週一的 17 點 0 分執行命令
0 5 1,15**命令 在每月 1 日和 15 日的凌晨 5 點 0 分執行命令
40 4 ** 1-5命令 在每週一到週五的凌晨 4 點 40 分執行命令
*/10 4 ***命令 在每天的凌晨 4 點,每隔 10 分鐘執行一次命令
0 0 1,15 * 1命令 在每月 1 日和 15 日,每週一個 0 點 0 分都會執行命令,注意:星期幾和幾日最好不要同時出現,因爲它們定義的都是天,非常容易讓管理員混淆

系統crotab設置

需要系統來執行的任務,需要我們去編輯 /etc/crontab 配置文件,CentOS7的配置文件如下圖:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章