7-4 指定行程執行
一般使用者可利用 at 命令指定行程的執行時間,也可利用 batch 建立一個批次行程,以下將分別介紹之。 7-4-1 指定行程 服務 - atd 首先必須先觀察指定行程服務 atd 是否啟動,測試如下:(執行 # systemctl status atd 命令,如沒啟動則鍵入 #system start atd 命令)
使用者可以由鍵盤上輸入某命令,並指定某一時間來執行該命令,相關命令有:
並非任何人都可以指定命令執行,而是必須經由系統管理者授權才行,有兩個檔案可以管理使用者執行 at 命令:
乍看之下,似乎兩個檔案互有相衝突,其實並非兩個檔案都必須同時存在。若是系統上兩個檔案都不存在的話,表示系統沒有設限,任何人都可以下 at 命令。另外,只有在 at.allow 存在時,編寫該檔案的使用者才可以執行 at 命令,其他使用者則無權執行;反之若存在 at.deny 表示僅該檔案內的使用者不可以執行 at 命令,其他使用者都可以執行。由此可見,allow 機制是採用較嚴謹的管理方式,而 deny 則較寬鬆。至於系統到底要採用哪一種管理方式,這可視環境因素再由管理者(root)自行制定。若是兩個檔案都存在,一般系統可能只會用到較寬鬆的 deny 檔案內容。若當執行 at 命令而所設定的時間還未到,則系統會將所預備執行的命令儲存於:
at 的命令格式如下:
常用選項有:
以下用幾種操作模式來介紹 at 命令的使用方法,如下: 7-4-2 指定行程命令 - at (A) 指定行程操作 直接設定某一特定時間,執行一序列的命令或程式,範例如下:
命令 # at 10:40am 表示指定當天早上 10 點 40 分執行命令。下達命令後,首先系統會出現詢問是要在哪一個 Shell 環境執行命令,內定值是原來登入的 Shell 環境(/bin/sh);接著系統出現 at> 提示符號,使用者可以連續輸入所欲執行的命令或程式;輸入完成,則鍵入『Ctrl +d』(按住 Ctrl 鍵再按入 d 鍵)來停止輸入(將出現 a t>?),並將所設定的命令存入 spool 排序器內。輸入完命令之後,可利用 # at –l 或 # atq 觀察執行後的結果。值得注意的是,at 所指定的命令,一旦時間到達並且已執行完畢,該命令集將由佇列排序器(spool)移除,且不再出現;另外所設定的時間不可以與目前時間太過接近,否則可能會永遠執行不到,這是分時系統所可能出現的問題。 (B) 顯示指定行程 當使用者輸入 at 命令之後,系統會記錄所欲執行批次檔案的時間,並以佇列編號表示;如欲刪除某一at 批次(atrm 命令)命令的話,也需指定一個佇列編號,操作範例如下:
7-4-3 刪除指定行程 - atrm 可利用 atrm 刪除行程,操作範例如下:
7-4-4 批次處理 – batch 其實 batch 命令格式與 at 幾乎相同,唯一不同的是 batch 可選擇是否指定時間,而 at 命令一定要指定時間,但兩者所產生的都是一個批次命令(包含一連串序列的命令)。如 batch 沒有指定時間的話,則會自動利用主機較空閒的時機來執行該批次檔案。命令格式如下:
操作範例如下:(與 at 命令相同,不再另述)
|
翻轉工作室:粘添壽
Linux 伺服器系統管理 - CentOS:
翻轉電子書系列:
|