Linux 系統管理-系統監控
top (查看當前進程實時的使用情況)
top指令可以查看當前進程實時的使用情況、CPU、RAM、I/O使用率等其他資訊
常用參數
-u
:查看指定用戶運行的進程-p
:查看特定進程的使用情況
交互模式下可使用的快捷鍵
q
:退出c
:運行的COMMAND會顯示絕對路徑k
:系統會讓你選擇要kill 的進程編號,輸入完進程編號再按enter就能 kill 進程P
:按照cpu 排序M
:按照ram大小排序h
:可以查看可用快捷鍵
顯示的資訊
名稱 | 定義 |
---|---|
PID | 進程 ID,是系統用來識別進程的唯一編號 |
USER | 進程所屬的使用者 |
PR | 進程的優先順序 |
NI | 進程的 nice 值 |
VIRT | 進程使用的虛擬記憶體(內存)大小 |
RES | 進程使用的實際記憶體(內存)大小 |
SHR | 進程共享的記憶體量 |
S | 進程的狀態 |
%CPU | 進程使用的 CPU 使用率 |
%MEM | 進程使用的記憶體使用率 |
TIME+ | 進程執行的總時間 |
COMMAND | 進程的命令行 |
範例
- 查看root 運行的進程實時的使用情況
1
top -u root
- 查看PID=5的進程實時的使用情況
1
top -p 5
history (查看用戶的cmd 使用紀錄)
例如可以在系統崩潰時,排查是哪個指令出問題,或是哪個指令誤刪了文件
每個用戶的歷史紀錄可以在
/home/用戶名/.bash_history
找到
如果想要重新使用指令,除了複製外,可以記住該指令的歷史編號
使用
! 歷史編號
系統就會運行該歷史編號的指令,就不用每次都找得很辛苦
df (磁碟分區的使用狀況)
df指令用來顯示磁碟分區的使用狀況。它會顯示每個磁碟分區的總空間、已使用空間和可用空間
常用參數
-h
:容量大小以人類容易閱讀的格式輸出(最常用)-t
:只顯示指定類型的檔案系統,如:df -t ext4
-T
:輸出同時也顯示磁碟的檔案系統-k
:以 KB 為單位顯示輸出-m
:以 MB 為單位顯示輸出-g
:以 GB 為單位顯示輸出
顯示的資訊
名稱 | 定義 |
---|---|
Filesystem | 進程 ID,是系統用來識別進程的唯一編號 |
Type | 進程 ID,是系統用來識別進程的唯一編號 |
1k-blocks | 進程 ID,是系統用來識別進程的唯一編號 |
Used | 進程 ID,是系統用來識別進程的唯一編號 |
Available | 進程 ID,是系統用來識別進程的唯一編號 |
Use% | 進程 ID,是系統用來識別進程的唯一編號 |
Mounted on | 進程 ID,是系統用來識別進程的唯一編號 |
範例
以人類容易閱讀的格式輸出
1
df -h
顯示特定磁碟的使用情況
1
df /
輸出同時也顯示磁碟的檔案系統
1
df -T
顯示ext4檔案系統的使用情況
1
df -t ext4
以GB為單位輸出
1
df -g
du(指定文件或目錄的大小)
du 指令用於顯示指定文件或目錄的大小
常用參數
-a
:顯示所有文件,包含隱藏文件-h
:以人類容易閱讀的格式輸出(最常用)-d N
:只顯示目錄結構的 N 層。
範例
顯示當前目錄 與其子目錄的大小
1
du .
只顯示當前目錄的大小
1
du -d 1 .
free(系統記憶體的使用狀況)
free 指令用來顯示系統記憶體的使用狀況
常用參數
-b
:以 byte 為單位顯示輸出-k
:以 KB 為單位顯示輸出-m
:以 MB 為單位顯示輸出-g
:以 GB 為單位顯示輸出-t
:顯示記憶體跟系統虛擬記憶體的統計情況-s
:設定刷新頻率,即時更新記憶體使用情況,如free -s 1
每秒刷新
顯示資訊
名稱 | 定義 |
---|---|
total | 總記憶體大小 |
used | 系統已使用的記憶體大小 |
free | 系統可以被程序立即使用的記憶體大小 |
shared | 多個進程共享的記憶體大小 |
buffers/cache | 緩衝資料的記憶體大小/緩衝磁碟資料的記憶體大小 |
available | 系統可以被程序立即使用的記憶體大小 + 緩衝資料的記憶體大小 |
swap | 系統的虛擬記憶體大小 |
dmesg(系統啟動時的訊息)
dmesg 指令用於顯示系統啟動時的訊息
- 用於檢查系統啟動時是否有任何異常訊息。例如,如果系統啟動時出現錯誤訊息,可以使用 dmesg 指令來查看錯誤訊息,以便排除故障
範例
- 一次只顯示一頁
1
dmesg | more
iostat(系統磁碟 I/O 的統計資訊)
iostat 命令用於顯示系統磁碟 I/O 的統計資訊
常用參數
-d
:顯示所有磁碟的統計資訊-k
:以 KB 為單位顯示磁碟 I/O 量-m
:以 MB 為單位顯示磁碟 I/O 量-s
:指定統計間隔,單位為秒-t
:指定要即時更新資訊幾次
顯示資訊
磁碟 讀取 I/O 量 寫入 I/O 量 平均讀取時間 平均寫入時間
範例
顯示所有磁碟的統計資訊,以秒為單位
1
iostat
顯示所有磁碟的統計資訊,以 KB 為單位,每隔 5 秒顯示一次,共顯示 10 次:
1
iostat -d -k -s 5 -t 10
netstat(網路連線狀態和資訊)
netstat 指令用於顯示網路連線狀態和資訊
常用參數
-a
:顯示所有連線,包括已啟動和已關閉的連線-v
:顯示連線的詳細資料-r
:顯示路由表-l
:顯示已啟動的連線-t
:顯示 TCP 連線-u
:顯示 UDP 連線-n
:使用ip表示連接,而不是用主機名稱
範例
查看路由表詳細資料
1
netstat -rnv
查看所有連線,使用ip表示
1
netstat -na
/proc/cpuinfo
這個文件記錄了系統cpu的訊息,如:型號、製造商、主頻、緩存大小、超線程技術是否啟用等。
可以用此指令查看cat /proc/cpuinfo | more
/proc/meminfo
這個文件記錄了系統記憶體的訊息,如:總記憶體容量、可用記憶體容量、使用中記憶體容量、緩衝區記憶體容量、交換分區容量等
可以用此指令查看cat /proc/meminfo | more
重要的系統日誌目錄 (/var/log)
boot.log
開機或關機時,一些服務啟動或關閉的訊息
chronyd (NTP)
cron
紀錄crontab這個服務的內容
maillog
紀錄郵件的存取與往來
secure
紀錄登錄系統存取的文件
syslog
事件紀錄程序監控日誌,經常是系統出問題的訊息,Redhat 默認不生成這個日誌
message
紀錄開機時發生的錯誤