1. 程式人生 > 實用技巧 >Linux系統管理之free、w、who、last、lastlog命令講解

Linux系統管理之free、w、who、last、lastlog命令講解

在我們日常Linux伺服器運維過程中,監控伺服器記憶體使用情況,多使用者登入情況的檢視這兩者都是經常要做的運維工作。

監控系統記憶體的使用情況命令:free

free 命令顯示系統記憶體的使用情況,包括實體記憶體、交換記憶體(swap)和核心緩衝區記憶體,在Linux系統監控的工具中,free命令是最經常使用的命令之一。free命令的基本格式如下:

$free [選項]

該命令選項如下表:

選項 含義
-b 以Byte為單位顯示記憶體使用情況
-k 以KB為單位顯示記憶體使用情況
-m 以MB為單位顯示記憶體使用情況
-g 以GB為單位顯示記憶體使用情況
-o 不顯示緩衝區調節列
-s<間隔秒數> 持續觀察記憶體使用狀況
-t 顯示記憶體總和列
-V 顯示版本資訊
使用舉例
  • 顯示記憶體使用情況

我們分別使用freefree -mfree -g三個命令,來看看執行結果:

上圖執行結果中,總共有6列:

列名 含義
total 總計實體記憶體的大小
used 已使用多大
free 可用有多少
shared 多個程序共享的記憶體總額
buff/cache 磁碟快取的大小
available

檢視登陸使用者資訊:wwho

Linux 中,wwho 命令都可以檢視伺服器上目前已登入的使用者資訊,兩者的區別在於,w

命令除了能知道目前已登陸的使用者資訊,還可以知道每個使用者執行任務的情況。

  • who 命令格式:

$ who [選項]

選項 含義
-a 列出所有資訊,相當於所有選項。
-b 列出系統最近啟動的時間日期。
-l 列出所有可登陸的終端資訊。
-m 僅列出關於當前終端的資訊,who -m 命令等同於 who am i。
-q 列出在本地系統上的使用者和使用者數的清單。
-r 顯示當前系統的執行級別。
-s 僅顯示名稱、線路和時間欄位資訊,這是 who 命令的預設選項。
-u 顯示當前每個使用者的使用者名稱、登陸終端、登陸時間、線路活動和程序標識。
-T 或 -w 顯示 tty 終端的狀態,“+”表示對任何人可寫,“-”表示僅對 root 使用者或所有者可寫,“?”表示遇到線路故障。

who -a

  • w 命令格式:

$ w [選項]

選項 含義
-h 不顯示輸出資訊的標題
-l 用長格式輸出
-s 用短格式輸出,不顯示登陸時間,JCPU 和 PCPU 時間
-V 顯示版本資訊

上圖是直接執行 w 命令之後輸出的結果,第一行顯示了當前的系統時間、系統從啟動至今已執行的時間、登陸到系統中的使用者數和系統平均負載。第二行是使用者資訊的各列標題,從第三行開始每行代表一個使用者。

第二行輸出的各標題含義如下:

標題 含義
USER 登入到系統的使用者
TTY 登入終端
FROM 表示使用者從哪裡登陸進來
LOGIN@ 使用者登陸的日期和時間。
IDLE 表示某個程式上次從終端開始執行到現在所持續的時間
JCPU 和該終端連線的所有程序佔用的 CPU 運算時間。這個時間裡並不包括過去的後臺作業時間,但是包括當前正在執行的後臺作業所佔用的時間
PCPU 當前程序所佔用的 CPU 運算時間
WHAT 當前使用者正在執行的程序名稱和選項,換句話說,就是表示使用者當前執行的是什麼命令

檢視過去登陸的使用者資訊:lastlastlog

lastlastlog 命令都可以檢視過去登入的使用者資訊,它們的區別是last 命令可以檢視當前和過去登陸系統使用者的相關資訊;lastlog 命令可以檢視到每個系統使用者最近一次登陸系統的時間。

  • last 命令格式如下:

$ last [選項]

選項 含義
-a 把從何處登陸系統的主機名或 IP 地址顯示在最後一行
-R 不顯示登陸系統的主機名或 IP 地址
-x 顯示系統關機、重新開機以及執行等級的改變等資訊
-n 顯示列數 設定列出資訊的顯示列數
-d 將顯示的 IP 地址轉換成主機名稱

其實在執行 last 命令時,它是去讀取 /var/log/wtmp 日誌檔案,該檔案是一個二進位制檔案,不能直接用 vi 編輯,只能通過 last 命令呼叫來輸出。

  • lastlog 命令,檢視登陸過當前系統使用者的最近一次登陸時間

lastlog 命令格式如下:

$ lastlog [選項]

lastlog 命令是去讀取 /var/log/lastlog 日誌檔案的,這個檔案同樣是二進位制檔案,不能直接用 vi 編輯,需要使用 lastlog 命令呼叫。