在手機中,我們常常使用備忘錄或者是鬧鍾等來提醒我們該做什么事情了,在Linux操作系統中,也有類似的操作。
在Linux中除了用戶即時執行的命令操作以外,還可以配置在指定的時間、指定的日期執行預先計划好的系統管理任務(如定期備份、定期采集監測數據)。RHEL6系統中默認已安裝了at、cronie軟件
包,通過atd和crond這兩個系統服務實現一次性、周期性計划任務的功能,並分別通過at、crontab命令進行計划任務設置。
一、at—一次性計划任務
1、准備
at的適用前提是at程序已經安裝並運行atd服務(atd服務是Linux下一次性定時計划任務命令的守候進程)
如果沒有安裝at程序則需要首先安裝at程序—— yum install at -y
如果沒有運行atd服務則需啟動atd服務—— systemctl restart atd;查看是否成功啟動atd服務可以用命令 ps aux | grep atd 來抓取atd進程信息,如下圖所示即為成功。
2、設置at計划任務
接下來萬事俱備,我們便可以調用at程序來設置我們的一次性計划任務了
at的格式是 ——at H:M Y-m-d (H/M:小時/分鍾 Y/m/d:年/月/日)特別注意at的時間格式,若是不加上后面的年月日便自動表示為今天,則為12小時制,上午要在時間后標明am(上午)或pm(下午)。
打出命令后,會彈出可供輸入的命令行,在里面輸入想要執行的操作后,摁 Ctrl + d 保存
設置完可以用—— at -l 或者 atq 來查看已設置的計划
3、刪除計划任務
當我們不想要這個計划后,可以輸入 atrm i 來進行刪除操作(i代表計划任務的編號,每個任務都會在行首 標明編號,可以利用at -l 或atq來查看)。 值得注意的是刪除任務后編號不會歸零而是繼續向下順位。
4、特殊計划任務的寫法
二、crontab定時任務的使用
語法與常用命令
相比於一次性計划任務,crontab可以多次的執行計划,可以在固定的某月某周某天某時某分來執行,也可以設置為每經過多長時間便執行一次
它的語法為—— crontab -u -e
-l:list,列出指定用戶的計划任務列表——查看命令
-e:edit,編輯指定用戶的計划任務列表
-u:user,指定的用戶名,如果不指定,則表示當前用戶
-r:remove,刪除指定用戶的計划任務列表
編寫計划任務
在進入 -e 編輯模式后,已行為單位,每一行就是一個計划,需要執行的命令要寫成絕對路徑的格式,
* 代表取值范圍里的每一個數字,拿第一個舉例子,如果第一位是 * 則代表每一分鍾都會執行一次該命令
- 代表取值范圍,例如 在 10點到12點之間就可以在第二個 * 設置為 10-12 即可
/ 代表每多少個,例如想要每10分鍾執行一次,可在分的位置設置 */10
, 代表多個數值,例如想在1,2,6點執行,便可在時的位置設置為 1,2,6
刪除任務計划
我們想要刪除剛剛編寫的計划,用——crontab -r就可以進行全部刪除注意這個命令是全部刪除,但是有時候我們創建了多條計划想進行批量刪除可以進入編輯模式,然后在不想要的計划前面加上#(其實就是把這一行注釋掉啦)