1. 程式人生 > >linux中計劃任務管理

linux中計劃任務管理

at命令 crontabml 一次性計劃任務 周期性任務 計劃任務

在linux操作系統中,除了用戶即時執行的命令操作以外,還可以配置在指定的時間、指定的日期執行預先計劃好的系統管理任務(如定期備份數據、定期開啟服務等)。

RedHat 6.5系統中的計劃任務是由at、crontab命令進行計劃任務的設置,其中at命令為一次性計劃任務,crontab命令是周期性的計劃任務。
(1) at命令(一次性的執行任務)
使用at命令設置的計劃任務只在指定的時間點執行一次,前提是需要開啟atd系統服務,需要設置計劃任務的時間、日期必須在當前系統的時間之後,否則將無法正確設置計劃任務。
設置一次性計劃任務時,在at命令行中一次指定計劃執行任務的時間、日期作為參數(若只指定時間則表示當天的時間,若只指定日期則表示該日期的當前時間),確認後將進入帶“at>”提示符的任務編輯界面,每行設置一條執行命令,可以依次設置多條語句,最後按Ctrl+D組合鍵提交任務即可。

示例:計劃明天22:00時自動關閉當前系統
技術分享圖片
對於已經設置計劃任務但是並未執行的計劃任務,可以通過atq命令進行查詢
技術分享圖片
若要刪除at任務,可以使用atrm命令,刪除後的at任務將不會被執行,並且不會顯示在atq命令的顯示結果中
技術分享圖片

(2) crontab命令(周期性重復執行任務)
使用crontab命令設置的計劃任務可以按預設的周期重復執行,可以大大減輕設置重復性系統管理任務的操作,由軟件包cronie提供crontab工具、系統服務crond和配置文件/etc/crontab.
crotab命令常用選項如下:
-e:編輯計劃任務列表
-u:指定所管理的計劃任務屬於哪個用戶,默認時針對當前用戶,一般只有root用戶有權限使用此選項(用於編輯、刪除其他用戶的計劃任務)

-l:列表顯示計劃任務
-r:刪除計劃任務列表

每一行仍無配置記錄都包括六個數據字段,分別表示不同的含義,每個字段必須定義,如下圖
技術分享圖片
其中前五個數據字段可以使用下列符號表示
星號“*”:表示取值範圍中的任意時間
減號“-”:表示一個連續的時間範圍
逗號“,”:表示一個間隔的不連續範圍

示例:每天0:00使用tar命令自動備份/etc/httpd目錄

技術分享圖片
查看當前用戶的計劃任務列表
技術分享圖片
刪除當前用戶的計劃任務列表
刪除某一條計劃任務時,可以通過crontab –e進行編輯;若要清空當前用戶的所有計劃任務時,執行crontab –r命令
技術分享圖片


註意事項:
定時任務(一般指腳本任務)規則的結尾最好加上“>/dev/null 2>&1”,即不輸出任何信息,若不加,時間長了,會產生大量文件占用大量磁盤inode節點,以至於磁盤inode滿而無法寫入正常數據。

linux中計劃任務管理