有兩種方式:
一、在將來的某個時間點執行一次某任務
咱們能夠用下面兩個命令:at和batch
at 時間 #指定時間
at> CMMAND #要執行的命令
at>Ctrl+d #提交任務
指定時間的方式:
絕對時間:HH:MM(幾點幾分)、DD.MM.YY(日月年)、MM/DD/YY(月日年)
相對時間:now+# 如:now+3minutes 即三分鐘後
單位:minutes,hours,days,weeks
模糊時間:noon,midnight,teattime
at -l(=atq) 顯示當前做業
at -d(=atrm)AT_JOB_ID 刪除指定做業
命令的執行結果:將以郵件的形式
batch不須要指定時間它會在系統空閒的時候自動執行任務,其餘的都和at相同
2、週期性地執行某任務:
cron:自身是一個不間斷運行的服務
anacron:它是cron的補充,可以實現讓cron由於各類緣由在過去的時間該執行而未執行的任務再恢復正常執行一次
cron分爲兩類:
(1)系統cron任務
都定義在/etc/crontab下 格式爲:分鐘 小時 天 月 周 用戶 任務
(2)用戶cron任務
都定義在/var/spool/cron/USERANME 格式爲:分鐘 小時 天 月 周 任務
時間的有效取值:
分鐘:0-59
小時:0-23
天:1-31
月:1-12
周:0-7,0和7都表示週日
時間的統配表示:
*:對應的全部有效取值
3 * * * * #每小時的第三分鐘
3 * * * 7 #每一個週日的每小時第三分鐘
13 12 6 7 * #每一年的七月六號十二點十三分
,:離散時間點
10,40 * * * * #每小時的第十分和第四十分
10,40 02 * * 2,5 #每週2、週五的凌晨兩點十分和凌晨四十分
-:表示連續時間點:
10 02 * * 1-5 #每週從週一到週五的凌晨兩點十分
/#:對應取值範圍內每多久一次
*/3 * * * * #每三分鐘一次
08 */2 * * * #每兩小時執行一次
10 04 */2 * * #每兩天執行一次
執行結果將以郵件形式發給管理員:若是不想讓它都發給管理員能夠送到/dev/null 目錄下,如:*/3 * * * * /bin/cat /etc/fstab > /dev/null 錯誤信息發給管理員
*/3 * * * * /bin/cat /etc/fstab &> /dev/null 不管正確錯誤的都不發給管理員
cron的環境變量:cron執行全部命令都去PATH環境變量指定的路徑下去找
cron PATH通常只包含 /bin:/sbin:/usr/bin:/usr/sbin
在腳本中能夠直接定義PATH變量以下圖:
用戶任務的管理:
crontab
-l: 列出當前用戶的全部cron任務
-e: 編輯
-r: 移除全部任務
-u USERNAME: 管理其用戶的cron任務
anacron: 它是對cron的補充,不能替代cron,
配置文件/etc/anacrontab