它不像 cron 和 anacron 會週而復始的執行 .
at 排程只執行一次 , 設定的時間到了它就執行 ,
執行完了就結束了 , 不會再執行第二次 .
要設定 at 排程 , 就直接下指令即可 , 指令格式如下 :
指令 | 工作時間 |
at | time |
time 這個欄位有下面幾種設法 :
time | 代表意思 |
HH:MM | 06:00 表示早上六點 , 18:00 表示晚上六點 . |
MMDDYY MM-DD-YY MM/DD/YY |
MM 代表 "月" 二碼 , DD 代表 "日" 二碼 , YY 代表 "年" 二碼 , "年" 也可以寫成四碼 . 其順序一定是 "月" "日" "年" , 中間可以用 "-" 或 "/" 隔開 . 如 : 062307 , 06-23-07 , 06/23/07 , 06232007 , ......... |
now + time-units | now 就是現在 , 再加上時間單元(time-units) , 時間單元可以為 minutes(分), hours(小時), days(日), or weeks(週) . 如 : now + 3minutes 或 now + 2days |
midnight | 表示 "子夜" , 就是 "凌晨 12 點" 的意思 . |
noon | 表示 "正午" , 就是 "中午 12 點" 的意思 . |
teatime | 表示 "下午茶時間" , 這裡是為 "下午四點" |
以下省略 | 在 Linux 上輸入 man at 就可以查到更多用法了 ..... |
. . . . . . . |
|
要注意的是 :
一定要指定時間 , 如 HH:MM or now , 後面才指定日期 , 日期部分可省略 .
好了 , 當輸入 at time 後 , 系統會秀出 at> 提示符號 ,
我們就可以在 at> 提示符號的後面 , 用指令告訴 at 排程的工作為何 .
若有多個指令要執行 , 可以輸入一個指令後 , 按下 "Enter" 換行來輸入下一個指令 ,
也可以用 ";" 來隔開前後兩個指令 .
當最後一個指令輸入完畢後 , 必須再按一次 "Enter" 讓游標換到下一個新行 ,
然後按鍵盤 Ctrl + D 來完成排程的指令 .
範例如下 :
等時間到了 , 它就會去執行了 .
怎麼知道工作已經排進排程了呢 ?
怎麼知道目前有幾個工作在排程中等待執行時間的到來呢 ?
atq 指令
要檢視等待中的工作 , 可執行 atq 指令 .
第一欄是工作序號 ,
第二欄是執行日期 ,
第三欄是執行時間 ,
第四欄是工作等級 ,
第五欄是執行身份 .
這裡只看到工作預定執行的時間 , 但看不到工作內容 .....
找不到有什麼參數或指令可以看到 at 排程工作的內容 ,
還請有經驗的朋友 , 不吝賜教 .
其實 /var/spool/at/ 資料夾內的檔案有記錄 ,
有空 , 有興趣的話 , 可以去看看 .
atrm 指令
要刪除已經排進 at 排程的工作 , 可以用 atrm 指令 .
指令格式如下 :
指令 | 工作序號 |
atrm | job |
工作序號要用 atq 指令查詢 , 查詢結果的第一個欄位便是 .
以上面 atq 查詢的那個範例圖來說 ,
可以看到有兩個工作在等待中 , 序號分別是 4 和 9 ,
若要刪除 9 號工作 , 就用下面指令即可 .
atrm 9 |
就醬 .
沒有留言:
張貼留言