在手機中,我們常常使用備忘錄或者是鬧鐘等來提醒我們該做什麼事情了,在Linux操作系統中,也有類似的操作。 在Linux中除了用戶即時執行的命令操作以外,還可以配置在指定的時間、指定的日期執行預先計劃好的系統管理任務(如定期備份、定期採集監測數據)。RHEL6系統中預設已安裝了at、cronie軟體 ...
在手機中,我們常常使用備忘錄或者是鬧鐘等來提醒我們該做什麼事情了,在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就可以進行全部刪除註意這個命令是全部刪除,但是有時候我們創建了多條計劃想進行批量刪除可以進入編輯模式,然後在不想要的計劃前面加上#(其實就是把這一行註釋掉啦)