480 likes | 606 Views
第 20 章. 檢視系統資訊. 本章重點. 20-1 查看登入的使用者 20-2 管理執行中的程序 20-3 檢視系統狀況的視窗程式. 前言. 瞭解每位使用者的一舉一動 , 對於系統管理者而言是非常重要的工作。一個管理完善的系統 , 不但安全性佳且穩定度高 將資料存放其中也更有保障。. 20-1 查看登入的使用者. 多人使用的環境中 , 每個用戶都能執行各種不同的程式。有些使用者在閱讀新聞群組 , 有些則在撰寫電子郵件 , 而另一些使用者可能正在下載檔案。如果電腦的運作不正常 , 或是被使用者亂搞一通 , 那可要好好管理才行。.
E N D
第 20 章 檢視系統資訊
本章重點 • 20-1 查看登入的使用者 • 20-2 管理執行中的程序 • 20-3 檢視系統狀況的視窗程式
前言 • 瞭解每位使用者的一舉一動, 對於系統管理者而言是非常重要的工作。一個管理完善的系統, 不但安全性佳且穩定度高 將資料存放其中也更有保障。
20-1 查看登入的使用者 • 多人使用的環境中, 每個用戶都能執行各種不同的程式。有些使用者在閱讀新聞群組, 有些則在撰寫電子郵件, 而另一些使用者可能正在下載檔案。如果電腦的運作不正常, 或是被使用者亂搞一通, 那可要好好管理才行。
20-1-1 觀察使用者舉動的 w 指令 • 若想知道使用者的舉止行為, 只需在文字模式下執行 w 指令即可:
w 指令的訊息意義 • 現在我們來瞭解一下, w 指令顯示之訊息所代表的意義。第一列由左至右共有四個欄位, 分述其意義如下: • 系統目前的時間: "14:12:38" 表示執行 w 指令的時間。 • 系統啟動後已經過的時間: "up 10 days, 20:38" 表示該系統已經啟動 10 天又 20 小時 38 分鐘。
w 指令的訊息意義 • 目前登入此系統的使用者總數: "6 users" 表示目前共有 6 位使用者登入此系統。同一個使用者帳號可重複登入 因而會見到重複的帳號名稱。 • 系統平均負載指示: "load average: 0.12, 0.09, 0.08" 的數值, 分別表示該系統在過去 1、5、 15 分鐘內的平均負載程度。其值越接近 0.00 表示系統負載越低 效能亦會較佳。 • 第二列共分為 8 個欄位 分別顯示出各個使用者在做的事情 以及該使用者所佔用的系統資源:
w 指令的訊息意義 • USER:顯示登入的使用者帳號名稱。若使用者重複登入系統, 則其帳號名稱也會重複顯現。 • TTY:該使用者登入的終端機代號。依照登入的形式不同, 終端機代號也不盡相同。其中, tty2~tty6 分別代表本機上的 2 到 6 號虛擬主控台, tty1 表示 X Window。pts/1 之類的標示, 代表此使用者是從遠端登入或是從, X Window 開啟文字模式視窗。
w 指令的訊息意義 • FROM:顯示使用者從何處登入系統。如果是由本地端登入系統, 則此一欄位將呈現 - 符號。若從遠端登入, 便會顯示遠端主機的 IP 位址或主機名稱, 若顯示:" 0.0" 則表示是從 X Window 開啟文字模式視窗。 • LOGIN@:這是 "Login At" 的意思, 表示該使用者登入系統時的時間 (不是登入後經過的時間)。 • IDLE:使用者閒置的時間。這是一個計時器, 只要該使用者開始新工作, 這個計時器就會重新計時。
w 指令的訊息意義 • JCPU:以終端機之代號來區分, 該終端機所有相關的程序(process) 執行時, 所消耗的 CPU 時間會顯示在這裡。此處的時間並非不斷累加, 每當工作告一段落就停止計時, 開始新的工作則會重新計時。 • PCPU:CPU 執行程式耗費的時間, 該時間就是執行 WHAT欄內的程式所消耗之時間。
w 指令的訊息意義 • WHAT:使用者正在做的事。假若正在執行某個程式, 這裡會標示出該程式的名稱, 如果正在執行一般的文字模式指令, 則會顯示使用者環境的名稱。 • 登入 X Window, 但沒有開啟文字模式視窗的使用者, 使用 w 指令查詢不到。
觀察個別使用者 • 當登入系統的使用者眾多, 執行 w 指令列出所有資料, 恐怕會讓自己眼花撩亂。假設只需觀察其中某位使用者時, 可指定使用者的帳號名稱: • w指令預設是顯示詳細資料, 假使不需如此詳細, 在執行指令時加上參數即可, 相關資訊請執行 w --help或 manw 指令查詢。
20-1-2 查看目前有哪些使用者登入的 who 指令 • who指令可用來查看目前系統有哪些使用者登入:
查看目前有哪些使用者登入的 who 指令 • 亦可加上參數讓列表更加詳細, 請執行 who-Hu指令:
查看目前有哪些使用者登入的 who 指令 • PID 為程序代號。每個程序都會有一個 PID, 以供系統辨識及處理。 • 您可以執行 who --help指令獲知參數的相關資訊。
20-1-3 查看曾登入此系統之使用者的 last 指令 • 想知道最近有哪些使用者曾經登入過系統, 我們可執行 last指令查詢:
清單太長了!來不及看, 怎麼辦? • 單用 last指令的執行結果, 其列出的內容實在是太長了, 在眼前一晃即過, 根本來不及細看。此時您可使用建立管線的方式以便觀看清單, 例如執行 last | more指令, 然後每按一次 鍵就向下捲動一行, 或是每按一次空白鍵就向下捲動一頁, 慢慢查看登入記錄。執行 last | less指令亦有類似效果, 您可用方向鍵、空白鍵、 和 等按鍵瀏覽記錄, 然後按 (或 ) 鍵離開。
清單太長了!來不及看, 怎麼辦? • 此外您亦可按 + 和 + 組合鍵, 上下瀏覽程序列表。 • 上述方法都是應用於純文字模式下, 倘若處於文字模式視窗內, 直接拉曳視窗旁邊的滑動桿或按捲動鈕, 便能輕易捲動文字模式視窗中的內容。 • 當然也可以先將執行結果輸出成檔案, 例如執行 last > login.log指令, 會產生一個名稱為 login.log 的檔案, 再以文書編輯程式開啟該檔案, 就能不慌不忙地觀看其內容。
查看曾登入此系統之使用者的 last 指令 • 僅執行 last指令, 會列出所有使用者。如果想要查詢某位使用者的登入狀況, 只需在指令後面加上該使用者的帳號名稱即可: • 其他關於 last指令參數的資訊, 執行 last -- help指令便可獲知。
20-2 管理執行中的程序 • 在系統中每位使用者都能執行多個程式, 每個程式又可能分成數個程序執行。某些程序會佔用大量的系統資源, 造成系統負載過重。因此如何做好程序的管理與監督, 是一項重要的工作。
20-2-1 監視系統資源的使用狀況 • 做為一個良好的管理者, 我們必須掌握系統中最消耗 CPU 資源的程序, 以維持系統之整體效能, 因而隨時監看系統的狀態也是管理者的一項重要工作。 • top指令用於監控系統的資源, 包括記憶體、交換檔分割區和 CPU 之使用率等等。現在請執行 top指令:
監視系統資源的使用狀況 • 執行 top指令後, 會周期性地更新內容, 顯示最新的系統狀況。預設是以 CPU 的負載狀況排序, 您也可以按 鍵改成以記憶體的使用率, 或者按 鍵以執行的時間排序 (按 鍵可改回預設值)。 • 請注意!在 top 裡的按鍵, 大小寫是不同的。
殭屍出現了! • 執行的程序有 sleeping、running、stopped 等狀態, 相信大家都還能夠理解, 可是這邊居然出現了殭屍 (zombie)?看來 Linux 的世界裡似乎存在著不少妖魔鬼怪!
殭屍出現了! • 其實所謂的殭屍, 是指『父母不知道的死孩子』。我們用電腦的語言來解釋會更清楚些, 程式可能分為數個程序執行, 當某個程序又產生另一個程序時, 原先的程序就稱為父程序(parent), 從父程序中產生的新程序, 稱之為子程序(child)。 • 倘若子程序已經當掉 (形同死亡), 而其父程序不知子程序早已死去, 無法將子程序佔用的系統資源回收, 此時這個子程序就變成殭屍。
監視特定使用者 • 直接執行 top指令時, 它會去監視系統中全部的程序, 所以感覺有些凌亂。假如只想監控某位特定的使用者, 只需按下 鍵, 然後指定使用者帳號名稱即可:
結束執行中的程序 • 假設發覺某個程序佔用太多系統資源, 或使用者執行規定以外的程式, 則可從 top 內直接將其刪除:
結束執行中的程序 • 除了管理者可刪除任何程序之外, 每個使用者僅能刪除隸屬於自己的程序, 而無法刪除其他使用者的程序。 • top 還有其他的功能, 詳細說明請按 或 鍵即可得知。
20-2-2 報告執行中的程序 • 當要查看系統中執行的程序時, ps (Process Status) 是經常使用的指令。現在請執行 ps指令, 您會見到執行中的程序列表:
報告執行中的程序 • 若加入 "u" 或 "-l" 參數則可觀看較詳細的說明:
20-2-3 觀察其他使用者的程序 • 若想一併查看其他使用者正在執行的程序, 請執行 ps -Al指令:
觀察其他使用者的程序 • 由顯示的訊息中, 可得知目前系統中有 UID 編號為 500、501 與 502 共三位其他使用者登入, 並可看到他們正在執行的程序。
20-2-4 查看背景執行的程序 • 單純使用 ps指令, 所觀察到的程序列表, 都是在前景執行的程序。但實際上, 並非所有程序都在前景執行, 隱藏在背景裡執行之程序也是不少的。想觀察系統和每位使用者執行中的全部程序, 可加上 "aux" 參數來查看:
20-2-5 替程序清單排序 • ps指令有個 "--sort" 參數, 可將查詢結果依程序執行的時間、PID、UID...等做排序, 再呈現於我們眼前。詳細的使用方法, 可執行 manps指令查詢, 在此不一一介紹, 僅以下例表示:
20-2-6 搭配其他指令查詢特定程序 • 由於 psaux指令會列出系統中正在執行的所有程序, 因此反而不易找到特定的程序。若搭配其他指令使用 (如 grep指令), 則可事半功倍:
搭配其他指令查詢特定程序 • 上面的效果類似搭配 "uU" 參數:
20-2-7 刪除執行中的程序 • 要刪除某些程序時, 除了使用 top指令的 鍵功能之外, 最簡單的方法就是在文字模式下執行 kill指令將其刪除, 通常它會搭配 ps指令使用:
刪除執行中的程序 • kill指令預設是使用參數 "-15", 這個參數會中斷正在執行的程序, 所以一般情況下只需使用 kill指令加上欲刪除程序的 PID, 便可刪除該程序。若遇到無法順利刪除的程序, 就需要再加上其他的參數:
如何將目前登入的使用者踢出系統? • 當您發現有某個使用者佔用了太多的系統資源, 或是正在進行非法活動, 只要執行以下指令, 就可以將其強制驅離, 踢出系統。 • 假設現在要將已登入系統的使用者 tony 踢出系統, 請先執行 who指令, 找出使用者 tony 登入的終端機代號, 接著再以 ps指令, 找出該終端機正在執行的程序中, 程序識別碼 PID 編號最小者:
如何將目前登入的使用者踢出系統? • 由於使用者登入系統時所執行的第一個程序通常為其工作環境 Shell (請參考第 21 章)。因此只要執行 kill-9指令, 將此程序強制刪除, 即可將使用者踢出系統:
20-3 檢視系統狀況的視窗程式 • 在此 Linux 發行版裡面, 還附有一套好用的視窗程式檢視工具, 方便您觀察系統的效能, 或得知記憶體、磁碟的剩餘空間等等。 • 請按概覽鈕, 切換到應用程式頁次的系統工具類別, 再按系統監控圖示開啟系統監控視窗:
檢視系統狀況的視窗程式 • 若您要觀察 CPU、記憶體及網路的使用狀況, 請切換至資源頁次。