任務排程crontab、at
阿新 • • 發佈:2021-11-21
任務排程分類:
任務排程:系統在某個時間執行特定命令或程式,周而復始地執行
1、系統工作:某些重要工作必須周而復始進行,如病毒掃描
2、個別使用者的工作:我們希望執行的某些程式,比如對mysql資料庫備份
crontab 任務排程
crontab [選項]
crontab -e edit,編輯定時任務
crontab -l list,查詢定時任務
crontab -r remove,刪除所有定時任務
呼叫例項
執行
crontab -e
寫入
*/1* * * * ls /root >> /home/handsome/boy.txt
退出後,自動開始執行。
引數說明
注:這裡的“*”並不是“隔幾分鐘”,而是“第幾分鐘”
特殊符號
符號案例
注意:一般定義了幾號就不要再定義周幾,兩者重複。
例:每隔一分鐘向time.txt檔案寫入當前日期和日曆
手動執行指令碼
0、建立兩個檔案
touch /home/handsome/time.txt
touch /home/handsome/jiaoben.txt
1、在指令碼中寫入
cal >> time.txt
date >> time.txt
2、給指令碼以執行許可權
chmod u+x jiaoben.txt
3、手動執行指令碼
./jiaoben.txt
4、檢視是否成功
cat /home/handsome/jiaoben.txt
自動執行指令碼
0、建立兩個檔案
touch /home/handsome/time.txt
touch /home/handsome/jiaoben.txt
1、在指令碼中寫入
cal >> time.txt
date >> time.txt
2、給指令碼以執行許可權
chmod u+x jiaoben.txt
3、進入任務排程編輯器
crontab -e
4、編輯內容
*/1 * * * * /home/handsome/jiaoben.txt
5、檢視是否成功
cat /home/handsome/jiaoben.txt
at 定時任務
一次性的定時任務。
原理:
at的守護程序atd會以後臺模式執行,每次檢查作業佇列再執行。
預設情況下,守護執行緒atd每隔60s檢查一次。有作業時會檢查作業執行時間,當匹配就執行。
前提
一定要保證atd程序的啟動
檢視目前程序atd是否啟動
ps -ef | grep atd
at [選項] [時間]
Ctrl + D 兩次,來結束at命令的輸入
時間的指定
1、接收當天的hh:mm的事件指定。
若事件已經過去就放在第二天執行。
例: 04:00
2、使用模糊的時間單詞
midnight、noon、teatime(下午四點)
3、採用十二小時制,帶上AM PM
4、指定執行的具體時間及日期
三種格式:
month day
mm/dd/yy 月日年
dd.mm.yy 日月年
例如 04:00 2021-03-1 //指定的日期必須跟在指定固定時間後面
5、相對計時法 now +count time-units
time-units是時間單位,可以用:分鐘、小時、天、星期 count:時間數量,幾分鐘、幾天
例:now + 5minutes
6、直接今天、明天:today tomorrow
操作例項
1、輸入at
at now + 2minutes 再回車
ls /home 再Ctrl+D兩次
2、atq 檢視已有的佇列
atq
3、atrm 刪除
atrm n //n為該工作的佇列號