大家好,我是高勝寒,本文是Linux運維-循序漸進學運維-基礎篇的第58篇文章。
文章目錄
前言:
計劃任務在公司用的比較多,而且在面試中也經常會問到關於計劃任務的問題,尤其是筆試題裏面,涉及到計劃任務的更多。
在之前的文章中,我們講了一個一次性的任務叫at , 如果你對at沒有印象了,可以點擊下方鏈接進行復習:
crontab定時任務的作用
crond命令定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作,只要提前寫好規則,後期無需人工干預,自動執行。
比如沃恩可以用計劃任務更新數據庫,做日誌切割,定時執行一些任務腳本,比如巡檢,收集系統狀態等等。
crontab的參數
參數 | 作用 |
---|---|
u | 指定用戶 |
l | 列出當前用戶下的cron服務的詳細內容 |
r | 刪除計劃任務 |
e | 編輯計劃任務 |
crontab -e 編輯時的語法
cat /etc/crontab
上圖展示的是: 每個*的取值範圍,比如第一個星號爲分鐘, 取值爲0-59
從左往右分別爲:分時日月周
周的取值爲 0-7, 週日用0 或者7 來表示
在crontab 裏一行代表一個任務,特殊符號的含義如下:
特殊符號 | 作用 | 舉例 |
---|---|---|
* | 代表取值範圍內的任意數字 | * * * * 7 |
/ | 指定時間的間隔頻率 | */10 |
- | 代表從某個時間到某個時間 | 9-16 |
, | 用逗號隔開指定一個列表範圍 | 1,2,3,8 |
crontab 使用舉例
crontab -e 用來編輯計劃任務
contab -l 查看計劃任務
1. 每天21:30備份數據
[root@ecs-c13b ~]# crontab -e
[root@ecs-c13b ~]# crontab -l
30 21 * * * tar zcvf /opt/data.tar.gz /data/*
2. 每個月的1,10,22日的5:15重啓apache
[root@ecs-c13b ~]# crontab -l
15 5 1,10.22 * * /etc/init.d/httpd restart
3. 每天的23點到凌晨2點 這個時間段 每14分鐘執行一次 腳本
[root@ecs-c13b ~]# crontab -l
*/14 0-2,23 * * * /srv/opstool/rml_third.sh
4 .每月的5日到10日的4:10 重啓httpd
10 4 5-10 * * /etc/init.d/httpd restart
5 .每月的5日到10日的每個小時 重啓httpd
0 */1 5-10 * * /etc/init.d/httpd restart
總結:
計劃任務需要多練習,熟能生巧。
我是高勝寒,一個在教培行業不忘初心的人,歡迎留言與我交流。