實現任務計劃有兩種方式:
1、在未來的某個時間點執行一次某任務
兩個命令可以指定:
at
batch
(這裡僅說明at的使用)
at 時間
at> COMMAND
at> Ctrl+d
指定的時間
絕對時間:HH:MM, DD.MM.YY, MM/DD/YY
相對時間:now+#
單位:minutes, hours, days, weeks
模糊時間:noon, midnight, teatime
命令的執行結果:將以郵件的形式發送給安排任務的用戶
at -l : 顯示作業列表
at -d AT_JOB_ID :刪除未完成的作業
如下圖:
【mail 1查看的內容與ls /var , /cat /etc/issue相同】
刪除作業2
2、周期性的執行某任務
命令cron可指定
cron:自身是一個不間斷運行的服務
anacron:cron的補充,能夠實現讓cron因為各種原因在過去的時間該執行而未執行的任務在恢復正常執行一次; 其配置文件為/etc/anacrontab
cron:
(1)系統cron任務:
編輯/etc/crontab
格式:
分鐘 小時 天 月 周 用戶 任務
(2)用戶cron任務:
編輯/var/spool/cron/USERNAME
格式:
分鐘 小時 天 月 周 任務
crontab
-l: 列出當前用戶的所有cron任務
-e: 編輯
-r: 移除所有任務
-u USERNAME: 管理其用戶的cron任務
如圖:
管理其他用戶:
時間的有效取值: 分鐘:0-59 小時:0-23 天:1-31 月:1-12 周:0-7,0和7都表示周日 時間通配表示: *:對應時間的所有有效取值 3 * * * * (每小時的第三分鐘執行一次) 3 * * * 7 (每周日的每小時的第三分鐘執行) 13 12 6 7 * (每7月6號的12:13執行一次) ,:離散時間點: 0,40 02 * * 2,5 (每周二和周五的2:10,2:40執行) -:連續時間點: 10 02 * * 1-5 (每周一至周五的2:10執行) /#: 對應取值范圍內每多久一次 */3 * * * * (每三分鐘執行一次的任務) 08 */2 * * * (每兩小時執行一次,"確定具體分鐘") 10 04 */2 * * (每兩天執行一次,"確定小時分鐘") 執行結果將以郵件形式發送給管理員: */3 * * * * /bin/cat /etc/fstab &> /dev/null cron的環境變量:cron執行所有命令都去PATH環境變量指定的路徑下去找 PATH /bin:/sbin:/usr/bin:/usr/sbin
cron在關機下是不執行任務的,因此,在經常關機的機器上最好使用anacron。