Linux中,很多很全面顯示系統當前運行狀態,負載,I/O等信息的工具,幫助管理員實時瞭解系統運行動態,以及排除故障。
ps命令:顯示進程狀態,快照方式顯示。
進程分爲兩類:一類是用戶通過終端啓動的進程,一類是與終端無關的進程,多爲守護進程。
ps命令支持兩種風格的命令:SysV風格 BDS風格。帶橫線的是SysV風格。
ps命令選項: a :與終端有關的進程 x : 與終端無關的進程 u : 顯示是哪個用戶啓動的 -e : 顯示所有進程 -f :完整格式列表顯示信息 -F :顯示額外信息 -H :顯示進程層次結構 -o :自定義顯示信息 #ps aux | more USER PID %CPU %MEM VSZ RSS TTY STAT START TIMECOMMAND root 1 0.0 0.1 19356 1544 ? Ss 17:00 0:02/sbin/init root 2 0.0 0.0 0 0? S 17:00 0:00[kthreadd] …… USER: 進程相關用戶 PID: 進程號 %CPU: CPU佔用百分比 %MEM: 內存佔用百分比 VSZ: 佔用虛擬內存大小 RSS: 常駐內存集,不可被交換的內存 TTY: 與哪個終端相關 STAT: 進程狀態 R:運行狀態 S:可中斷睡眠 D:不可中斷睡眠 T:停止的 Z:殭屍進程 s:會話首進程 +:前臺進程 l: 多線程進程 N:低優先級進程 <: 高優先級進程 START:啓動運行時間 TIME; 運行時長 COMMAND:由哪個命令啓動的此進程,如果COMMAND包含在方括號中,則表示是內核進程 #ps -ef | more UID PID PPID C STIME TTY TIME CMD root 1 0 0 17:00 ? 00:00:02 /sbin/init root 2 0 0 17:00 ? 00:00:00 [kthreadd] PPID:父進程 STIME:啓動時間 TIME: 執行累計時間 自定義顯示信息 #ps axo pid,command PID COMMAND 1 /sbin/init 2 [kthreadd] 3 [migration/0] 4 [ksoftirqd/0] …… 查看httpd進程是否啓動,可以使用grep命令拼接。‘ #ps -ef | grep httpd root 1746 1 0 17:00 ? 00:00:01 /usr/sbin/httpd apache 1753 1746 0 17:00 ? 00:00:00 /usr/sbin/httpd
pgrep命令:檢查在系統的中活動進程
pgrep命令參數 -U UID:指定用戶啓動的進程 -G GID:指定組相關的進程 -t: 顯示終端相關的進程 -l: 同時顯示進程號和程序名 #pgrep -U dhcpd 1638
top命令:是Linux下的分析工具,實時監控系統性能資源佔用情況
# top top - 21:42:26 up 4:42, 3 users, load average: 0.00, 0.00, 0.00 Tasks: 170 total, 1 running, 169 sleeping, 0stopped, 0 zombie Cpu(s): 0.2%us, 0.3%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1016320ktotal, 666004k used, 350316k free, 41344k buffers Swap: 2097144ktotal, 0k used, 2097144k free, 365124k cached
第一行:系統負載
第二行:進程信息
第三行:CPU使用百分比
第四行:內存信息
htop命令:
需要自己手動安裝rpm包或者源碼包,CentOS6.5的系統光盤裏是沒有的。
命令行選項 -C:使用一個單色的配色方案 -d:設置延遲更新時間,單位秒 -h:顯示htop 命令幫助信息 -u:只顯示一個給定的用戶的過程 -p:只顯示給定的PIDs -s:依此列來排序 -v:顯示版本信息 例如: # htop -d 1 就會1秒刷新1次。 # htop -v htop 1.0.1 - (C) 2004-2011 Hisham Muhammad Released under the GNU GPL. 交互式命令: u: 交互式選擇顯示指定用戶的進程 l: 顯示光標所在進程所打開的文件列表 s: 顯示光標所在進程執行的系統調用 a: 綁定進程到指定的CPU #:快速定位光標至PID爲#的進程上
vmstat:虛擬內存狀態信息
iftop:流量監控工具
命令選項 -i:指定要監控的網卡設備名 -B:以bytes爲單位顯示流量 -n:不顯示主機名而是顯示IP地址 -N:說是默認顯示端口,我也始終沒看明白怎麼用(don'tconvert port numbers to services) -F:指定顯示某網段的流量
dstat:全能型監控工具
-c:顯示cpu統計數據 -d: 顯示磁盤數據 -g: 顯示page的統計數據 -i: 顯示中斷的數據 -m:顯示內存 -s: 交換內存 -p: 顯示進程隊列 --ipc:顯示進程間消息隊列,信號量和共享內存的使用情況 -DDISK:只顯示指定disk的統計數據 -y: 系統狀態數據 -n: 顯示網絡接口 -Neth0:僅顯示指定網絡接口的使用情況 -f:以完整格式顯示所有信息 網絡連接狀態統計,例如 dstat --tcp --tcp --udp --raw --unix
補:檢查了下有部分解釋被logo遮住了,解釋如下。
CPU使用百分比被遮住部分:用戶空間佔用CPU百分比。
dstat命令被遮住部分:磁盤讀/寫實時頻率。
總結:Linux常用監控工具很多,掃描端口的,捕獲數據流量包的,命令多少會使用一些,但是出來的結果根本看不懂,只是提一下幾個命令。
nmap:掃描開方端口的工具。
nc ncat:左右感覺和nmap差不多。
tcpdump:分析流量數據包工具。