1. 程式人生 > 其它 >任務排程crontab、at

任務排程crontab、at

任務排程分類:

任務排程:系統在某個時間執行特定命令或程式,周而復始地執行

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為該工作的佇列號