Linux系統維護的主要工做就是保證系統和應用的穩定。而若是想保證穩定就必須時刻了解系統的狀態;cpu、內存、磁盤、網絡和各類應用程序的運行於佔用資源的狀態等。同時掌握了系統資源的狀態信息;也能夠對系統進行優化,以發揮更好的性能。
html
對於這些信息的查看;須要一些工具可以及時的查看和分析;下面就對Linux系統資源監控經常使用的工具進行簡單的介紹:node
一、sar(System Activity Recorder)python
sar能夠顯示CPU 使用率、內存頁數據、網絡 I/O 和傳輸統計、進程建立活動和磁盤設備的活動詳情mysql
# yum -y install sysstat 安裝sar # sar -h Usage: sar [ options ] [ <interval> [ <count> ] ] Main options and reports: -b I/O and transfer rate statistics -B Paging statistics -d Block device statistics -I { <int> | SUM | ALL | XALL } Interrupts statistics -m Power management statistics -n { <keyword> [,...] | ALL } Network statistics Keywords are: DEV Network interfaces EDEV Network interfaces (errors) ..... 詳細請查看幫助信息
測試:linux
# sar -b -r -u 1 爲了方便;這裏一次性顯示三項 Linux 2.6.32-431.el6.x86_64 (node2.soul.com) 05/25/2014 _x86_64_ (1 CPU) #cpu信息 09:07:24 PM CPU %user %nice %system %iowait %steal %idle 09:07:25 PM all 0.00 0.00 2.02 0.00 0.00 97.98 #I/O信息 09:07:24 PM tps rtps wtps bread/s bwrtn/s 09:07:25 PM 0.00 0.00 0.00 0.00 0.00 #內存信息 09:07:24 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit 09:07:25 PM 764828 247524 24.45 11772 102232 1142588 36.75 #對於這其中每項的含義就不作一一解釋;基本表示的很清楚;大都是詞面意思。
sar還記錄天天的cpu信息
ios
# sar -f /var/log/sa/sa25 sa25表示本月25號的信息 Linux 2.6.32-431.el6.x86_64 (node2.soul.com) 05/25/2014 _x86_64_ (1 CPU) 12:00:01 AM CPU %user %nice %system %iowait %steal %idle 12:10:01 AM all 0.02 0.00 0.10 0.08 0.00 99.80 12:20:01 AM all 0.01 0.00 0.10 0.06 0.00 99.83 .... 03:20:01 PM CPU %user %nice %system %iowait %steal %idle 03:30:01 PM all 7.38 0.00 0.53 0.31 0.00 91.77 03:40:02 PM all 23.89 0.00 0.31 0.04 0.00 75.76 03:50:01 PM all 21.84 0.00 2.37 0.32 0.00 75.46 04:00:04 PM all 97.14 0.00 2.86 0.00 0.00 0.00 04:10:01 PM all 47.26 0.00 0.41 0.17 0.00 52.16 04:20:01 PM all 0.01 0.00 0.09 0.98 0.00 98.92 Average: all 8.23 0.00 0.43 0.24 0.00 91.09 #從上述信息能夠看出下午3:20-4:10以前CPU佔用率很高 #每一個文件最後一行都是統計的平均數據。
顯示塊設備的信息
web
# sar -d Linux 2.6.32-431.el6.x86_64 (node2.soul.com) 05/25/2014 _x86_64_ (1 CPU) 12:00:01 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 12:10:01 AM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 12:10:01 AM dev8-0 0.20 0.27 2.11 12.07 0.00 5.64 5.19 0.10 12:10:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 12:10:01 AM dev253-0 0.00 0.01 0.00 8.00 0.00 8.00 8.00 0.00
網絡相關的
sql
# sar -n NFS | more Linux 2.6.32-431.el6.x86_64 (node2.soul.com) 05/25/2014 _x86_64_ (1 CPU) ... 08:50:01 PM 0.02 0.00 0.00 0.00 0.00 0.00 09:00:01 PM 0.02 0.00 0.00 0.00 0.00 0.00 09:10:01 PM 0.01 0.02 0.00 0.00 0.00 0.00 09:20:01 PM 0.00 0.01 0.00 0.00 0.00 0.00 Average: 0.02 0.00 0.00 0.00 0.00 0.00 # sar -n DEV | more Linux 2.6.32-431.el6.x86_64 (node2.soul.com) 05/25/2014 _x86_64_ (1 CPU) 12:00:01 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 12:10:01 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ... Average: lo 0.92 0.92 1.47 1.47 0.00 0.00 0.00 Average: eth0 627.52 19.67 142.99 2.63 0.00 0.00 0.00 Average: virbr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: virbr0-nic 0.00 0.00 0.00 0.00 0.00 0.00 0.00
詳細查閱幫助信息便可。apache
-------------------------------------------------------------------------------------------centos
二、Htop
Htop是一個Linux實時監控的應用程序。它顯示了運行的進程的完整列表和正在運行的任務。能夠直接鼠標點擊操做。能夠上下左右的拉動菜單查看完整的信息。
系統通常默認沒有安裝;須要安裝該工具。
# yum -y install htop # htop
能夠看到詳細的CPU和內存等信息;下方定義的F1-F10快捷鍵。也能夠直接鼠標點擊。
按t顯示樹狀視圖
信息顯示和幫助也都很信息;一目瞭然。直接按"/"能夠進行搜索關鍵字。
-------------------------------------------------------------------------------------------
三、dstat
dstat是一個全能系統信息統計工具。與sysstat相比,dstat擁有一個彩色的界面, 在手動觀察性能情況時, 數據比較顯眼容易觀察;並且dstat支持即時刷新, 譬如輸入dstat 3, 即每三秒收集一次, 但最新的數據都會每秒刷新顯示。和sysstat相同的是, dstat也能夠收集指定的性能資源, 譬如 dstat -c 即顯示CPU的使用狀況。
# dstat -h 查看幫助信息 Usage: dstat [-afv] [options..] [delay [count]] Versatile tool for generating system resource statistics Dstat options: -c, --cpu enable cpu stats -C 0,3,total include cpu0, cpu3 and total -d, --disk enable disk stats -D total,hda include hda and total -g, --page enable page stats -i, --int enable interrupt stats -I 5,eth2 include int5 and interrupt used by eth2 -l, --load enable load stats -m, --mem enable memory stats -n, --net enable network stats -N eth1,total include eth1 and total
查看cpu信息
# dstat -c 1 5 顯示cpu狀態;每1秒刷新1次,共5次 ----total-cpu-usage---- usr sys idl wai hiq siq 8 0 92 0 0 0 0 0 100 0 0 0 0 0 100 0 0 0 0 1 99 0 0 0 0 0 100 0 0 0 0 0 100 0 0 0
同時顯示多個狀態信息
能夠看出每項都有顏色標記出來。顯示很清楚。
還支持插件監控
# dstat --list internal: aio, cpu, cpu24, disk, disk24, disk24old, epoch, fs, int, int24, io, ipc, load, lock, mem, net, page, page24, proc, raw, socket, swap, swapold, sys, tcp, time, udp, unix, vm /usr/share/dstat: battery, battery-remain, cpufreq, dbus, disk-util, fan, freespace, gpfs, gpfs-ops, helloworld, innodb-buffer, innodb-io, innodb-ops, lustre, memcache-hits, mysql-io, mysql-keys, mysql5-cmds, mysql5-conn, mysql5-io, mysql5-keys, net-packets, nfs3, nfs3-ops, nfsd3, nfsd3-ops, ntp, postfix, power, proc-count, rpc, rpcd, sendmail, snooze, thermal, top-bio, top-cpu, top-cputime, top-cputime-avg, top-io, top-latency, top-latency-avg, top-mem, top-oom, utmp, vm-memctl, vmk-hba, vmk-int, vmk-nic, vz-cpu, vz-io, vz-ubc, wifi
顯示最佔用cpu進程
# dstat --top-cpu -most-expensive- cpu process mysqld 0.1 mmm_agentd 4.0 sshd: root@pt1.0 kblockd/0 1.0 events/0 1.0
佔用內存最多的進程
# dstat --top-mem --most-expensive- memory process mysqld 37.0M mysqld 37.0M mysqld 37.0M mysqld 37.0M
具體須要慢慢了解。
-------------------------------------------------------------------------------------------
四、Glances
Glances 是一個由 Python 編寫,使用 psutil 庫來從系統抓取信息的基於 curses 開發的跨平臺命令行系統監視工具。 經過 Glances,咱們能夠監視 CPU,平均負載,內存,網絡流量,磁盤 I/O,其餘處理器 和 文件系統 空間的利用狀況。
Glances 是一個用來監視 GNU/Linux 和 FreeBSD 操做系統的 GPL 受權的自由軟件。
Glances 同時也提供了不少實用的選項。 其中咱們可以在配置文件見到的一項主要的功能就是設置關鍵值及相應的標籤 (careful[當心], warning[警告] 和 critical[嚴重]), 而後她會自動幫咱們用不一樣顏色標出系統達到某個瓶頸的信息。
Glances主要功能:
CPU 信息 (用戶的相關應用, 系統核心程序和空閒程序)
總內存信息,包括了物理內存,交換空間和空閒內存等等
以前的 1 分鐘、5 分鐘和 15 分鐘平均的 CPU 負載
網絡連接的下行和上行速度
處理器總數,以及其活動狀態
硬盤 I/O 相關(讀寫)速度詳情
當前掛載設備的磁盤使用狀況
高 CPU 和內存使用的進程名,和相關應用的位置
在底部顯示當前日期和時間
將消耗最高系統資源的進程用紅色標出
# glances
能夠看出顯示cpu/Memroy/network/disk I/O等的相關信息。
幫助信息。
同時還能夠遠程監控:
在服務器端啓動 # glances -s -B 192.168.0.113 Define the password for the Glances server Password: Password (confirm): Glances server is running on 192.168.0.113:61209
客戶端鏈接:
同時還能夠在web頁面監控:
#安裝jinja # yum -y install python-jinja2 # glances -o HTML -f /var/www/html/ -o:輸出格式;HTML/CSS,-f:指定文件目錄
-------------------------------------------------------------------------------------------
五、vmstat
Linux 的 VmStat 命令用於顯示虛擬內存、內核線程、磁盤、系統進程、I/O 塊、中斷、CPU 活動 等的統計信息。缺省狀況下, vmstat 命令在 Linux 系統下不可用,你須要安裝一個包含了 vmstat 程序的 sysstat 軟件包。命令格式的常見用法是:
# vmstat -h usage: vmstat [-V] [-n] [delay [count]] -V prints version. -n causes the headers not to be reprinted regularly. -a print inactive/active page stats. -d prints disk statistics -D prints disk table -p prints disk partition statistics -s prints vm table -m prints slabinfo -t add timestamp to output -S unit size delay is the delay between updates in seconds. unit size k:1000 K:1024 m:1000000 M:1048576 (default is K) count is the number of updates. # vmstat 1 基本的顯示信息 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 28052 52108 6748 113832 1 7 98 26 73 47 1 2 89 3 4 0 0 28052 52108 6748 113832 0 0 0 0 52 77 0 0 100 0 0
各種事件的彙總信息和內存統計信息
# vmstat -s 411076 total memory 347412 used memory 106796 active memory 173984 inactive memory 63664 free memory 6844 buffer memory 113840 swap cache 2097148 total swap 28052 used swap 2069096 free swap 4564 non-nice user cpu ticks 0 nice user cpu ticks 9378 system cpu ticks 381969 idle cpu ticks 14107 IO-wait cpu ticks 0 IRQ cpu ticks 133 softirq cpu ticks 16588 stolen cpu ticks 400531 pages paged in 107270 pages paged out 1040 pages swapped in 7225 pages swapped out 304418 interrupts 195616 CPU context switches 1401027180 boot time 2575 forks
磁盤信息
# vmstat -d disk- ------------reads------------ ------------writes----------- -----IO------ total merged sectors ms total merged sectors ms cur sec ram0 0 0 0 0 0 0 0 0 0 0 .... loop7 0 0 0 0 0 0 0 0 0 0 fd0 0 0 0 0 0 0 0 0 0 0 sr0 65 65 520 4622 0 0 0 0 0 4 sda 23009 597 796190 424432 6065 10460 215324 422197 0 180 dm-0 3344 0 109290 168642 1295 0 10408 90252 0 76 dm-1 1362 0 10896 19480 7225 0 57800 431928 0 31 dm-2 11452 0 230018 174775 2145 0 34744 417037 0 49 dm-3 6356 0 439162 72389 5903 0 112344 220191 0 52
以M顯示;默認顯示的是字節
# vmstat -S M 1 5 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 27 62 6 111 0 0 87 23 67 44 1 2 90 3 4 0 0 27 62 6 111 0 0 0 0 36 53 0 0 100 0 0 0 0 27 62 6 111 0 0 0 0 32 53 0 0 100 0 0 0 0 27 62 6 111 0 0 0 0 59 65 0 0 100 0 0 0 0 27 62 6 111 0 0 0 28 45 62 0 0 100 0 0
-------------------------------------------------------------------------------------------
六、lsof
在許多Linux或者類Unix系統裏都有lsof命令,它經常使用於以列表的形式顯示全部打開的文件和進程。打開的文件包括磁盤文件、網絡套接字、管道、設備和進程。使用這條命令的主要情形之一就是在沒法掛載磁盤和顯示正在使用或者打開某個文件的錯誤信息的時候。使用這條命令,你能夠很容易地看到正在使用哪一個文件。這條命令最經常使用的格式以下:
# lsof | more COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME init 1 root cwd DIR 253,0 4096 2 / init 1 root rtd DIR 253,0 4096 2 / init 1 root txt REG 253,0 150352 393260 /sbin/init init 1 root mem REG 253,0 65928 917536 /lib64/libnss_files-2.12.so init 1 root mem REG 253,0 1926800 917921 /lib64/libc-2.12.so
lsof選項信息:
lsof /path/to/somefile:顯示打開指定文件的全部進程之列表 lsof -c string:顯示其COMMAND列中包含指定字符(string)的進程全部打開的文件;此選項能夠重複使用,以指定多個模式; lsof -p PID:查看該進程打開了哪些文件;進程號前可使用脫字符「^」取反; lsof -u USERNAME:顯示指定用戶的進程打開的文件;用戶名前可使用脫字符「^」取反,如「lsof -u ^root」則用於顯示非root用戶打開的全部文件; lsof -g GID:顯示歸屬gid的進程狀況 lsof +d /DIR/:顯示指定目錄下被進程打開的文件 lsof +D /DIR/:基本功能同上,但lsof會對指定目錄進行遞歸查找,注意這個參數要比grep版本慢: lsof -a:按「與」組合多個條件,如lsof -a -c httpd -u apache lsof -N:列出全部NFS(網絡文件系統)文件 lsof -d FD:顯示指定文件描述符的相關進程;也能夠爲描述符指定一個範圍,如0-2表示0,1,2三個文件描述符;另外,-d還支持其它不少特殊值,如: mem: 列出全部內存映射文件; mmap:顯示全部內存映射設備; txt:列出全部加載在內存中並正在執行的進程,包含code和data; cwd:正在訪問當前目錄的進程列表; lsof -n:不反解IP至HOSTNAME lsof -i:用以顯示符合條件的進程狀況 lsof -i[46] [protocol][@hostname|hostaddr][:service|port] 46:IPv4或IPv6 protocol:TCP or UDP hostname:Internet host name hostaddr:IPv4地址 service:/etc/service中的服務名稱(能夠不僅一個) port:端口號 (能夠不僅一個) |
查看22號端口運行信息
# lsof -i TCP:22 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1474 root 3u IPv4 10212 0t0 TCP *:ssh (LISTEN) sshd 1474 root 4u IPv6 10214 0t0 TCP *:ssh (LISTEN) sshd 2411 root 3u IPv4 13421 0t0 TCP node3.soul.com:ssh->172.16.250.40:53791 (ESTABLISHED) sshd 2503 root 3u IPv4 13630 0t0 TCP node3.soul.com:ssh->172.16.250.40:56215 (ESTABLISHED) sshd 2536 root 3u IPv4 14680 0t0 TCP node3.soul.com:ssh->192.168.253.30:56727 (ESTABLISHED)
列出非root用戶所打開的文件
# lsof -i -u ^root COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rpcbind 1277 rpc 6u IPv4 10751 0t0 UDP *:sunrpc rpcbind 1277 rpc 7u IPv4 10753 0t0 UDP *:tunnel rpcbind 1277 rpc 8u IPv4 10754 0t0 TCP *:sunrpc (LISTEN) rpcbind 1277 rpc 9u IPv6 10756 0t0 UDP *:sunrpc rpcbind 1277 rpc 10u IPv6 10758 0t0 UDP *:tunnel
顯示指定PID
# lsof -p 1 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME init 1 root cwd DIR 253,0 4096 2 / init 1 root rtd DIR 253,0 4096 2 / init 1 root txt REG 253,0 150352 393260 /sbin/init init 1 root mem REG 253,0 65928 917536 /lib64/libnss_files-2.12.so
kill掉指定用戶的全部進程
# kill -9 `lsof -t -u root`
-------------------------------------------------------------------------------------------
七、iostat
Iostat是一個用於收集顯示系統存儲設備輸入和輸出狀態統計的簡單工具。這個工具經常用來追蹤存儲設備的性能問題,其中存儲設備包括設備、本地磁盤,以及諸如使用NFS等的遠端磁盤。
# iostat Linux 3.4.68-9.el6.centos.alt.x86_64 (node3.soul.com) 05/25/2014 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.64 0.00 1.37 1.97 2.35 93.67 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn scd0 0.02 0.14 0.00 520 0 sda 8.28 219.67 62.23 801198 226980 dm-0 1.29 30.71 2.87 112018 10472 dm-1 2.36 3.00 15.85 10960 57800 dm-2 3.78 63.66 9.56 232194 34856 dm-3 3.75 120.42 33.95 439202 123824
簡單幫助信息
# iostat --help 詳細可使用man查看 Usage: iostat [ options ] [ <interval> [ <count> ] ] Options are: [ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ] [ -j { ID | LABEL | PATH | UUID | ... } [ <device> [...] | ALL ] ] [ <device> [...] | ALL ] [ -p [ <device> [,...] | ALL ] ] # iostat -c 僅顯示cpu Linux 3.4.68-9.el6.centos.alt.x86_64 (node3.soul.com) 05/25/2014 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.62 0.00 1.33 1.91 2.28 93.85
-----------------------------------------------------------------------------------------
八、iftop
iftop是另外一個在控制檯運行的開放源代碼系統監控應用,它顯示了系統上經過網絡接口的應用網絡帶寬使用(源主機或者目的主機)的列表,這個列表按期更新。iftop用於監視網絡的使用狀況,而'top'用於監視CPU的使用狀況。iftop是'top'工具系列中的一員,它用於監視所選接口,並顯示兩個主機間當前網絡帶寬的使用狀況。
#安裝軟件 # yum -y install iftop # iftop interface: eth0 IP address is: 192.168.0.113 MAC address is: 00:0c:29:16:59:ffffffc5 12.5Kb 25.0Kb 37.5Kb 50.0Kb 62.5Kb └─────────────────────┴─────────────────────┴──────────node3.soul.com─────┴────────.=> 192.168.0.254.────┴─────────.4.09Kb 2.05Kb 2.05Kb <= 5.18Kb 2.59Kb 2.59Kb node3.soul.com => 172.16.250.40 2.55Kb 4.21Kb 4.21Kb <= 160b 320b 320b node3.soul.com => server.magelinux.com 0b 578b 578b <= 0b 1.03Kb 1.03Kb 172.16.255.255 => 172.16.250.40 0b 0b 0b <= 1.22Kb 702b 702b ... Press H or ? for help 2.5Kb 25.0Kb 37.5Kb 50.0Kb 62.5Kb └─────────────────────┴─────────────────────┴──────────node3.soul.com─────┴────────.=> 172.16.250.40.────┴─────────.2.95Kb 3.96Kb 3.96Kb── <= 656b 387b 387b node3.soul.com => 192.168.0.254 0b 1.64Kb 1.64Kb <= 0b 2.07Kb 2.07Kb node3.soul.com => server.magelinux.com 584b 579b 579b <= 1.05Kb 1.04Kb 1.04Kb 172.16.255.255 => 172.16.250.40 0b 0b 0b <= 1.22Kb 811b 811b ───────────────────────────────────────────────────────TX: cum: 8.02KB peak: 8.68Kb ──────────rates: 3.52Kb 6.17Kb 6.17KbRX: 6.84KB 7.22Kb 4.66Kb 5.44Kb 5.44Kb
-----------------------------------------------------------------------------------------
九、tsar
Tsar是淘寶開發的一個很是好用的系統監控工具,在淘寶內部大量使用。
它不只能夠監控CPU、IO、內存、TCP等系統狀態,也能夠監控Apache,Nginx/Tengine,Squid等服務器狀態。
# yum -y install tsar-2.1.0-0.el4.x86_64.rpm # tsar -h 安裝完成後須要等待一段時間來收集數據 Usage: tsar [options] Options: --cron/-c run in cron mode, output data to file --interval/-i specify intervals numbers, in minutes if with --live, it is in seconds --list/-L list enabled modules --live/-l running print live mode, which module will print --ndays/-n show the value for the past days (default: 1) --merge/-m merge multiply item to one --help/-h help Modules Enabled: --cpu CPU share (user, system, interrupt, nice, & idle) --mem Physical memory share (active, inactive, cached, free, wired) --swap swap usage --tcp TCP traffic (v4) --udp UDP traffic (v4) --traffic Net traffic statistics --io Linux I/O performance --pcsw Process (task) creation and context switch --partition Disk and partition usage --tcpx TCP connection data --load System Run Queue and load average
監控cpu
# tsar --cpu -l 1 Time -----------------------cpu---------------------- Time user sys wait hirq sirq util 25/05-23:38 0.0 0.3 0.0 0.0 0.0 0.9 25/05-23:38 0.1 0.3 0.0 0.0 0.0 0.6 25/05-23:38 0.0 0.3 0.1 0.0 0.1 0.8 25/05-23:38 0.0 0.3 0.0 0.0 0.0 0.6
監控內存
# tsar --mem -l 1 Time -----------------------mem---------------------- Time free used buff cach total util 25/05-23:39 64.7M 288.5M 1.9M 46.3M 401.4M 71.9 25/05-23:39 68.1M 285.2M 1.9M 46.3M 401.4M 71.0 25/05-23:39 71.5M 281.7M 1.9M 46.3M 401.4M 70.2
---------------------------------------------------------------------------------
十、ss
ss命令用於顯示socket狀態. 他能夠顯示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等統計。
經常使用命令:
ss -l 顯示本地打開的全部端口 ss -pl 顯示每一個進程具體打開的socket ss -t -a 顯示全部tcp socket ss -u -a 顯示全部的UDP Socekt ss -o state established '( dport = :smtp or sport = :smtp )' 顯示全部已創建的SMTP鏈接 ss -o state established '( dport = :http or sport = :http )' 顯示全部已創建的HTTP鏈接 ss -x src /tmp/.X11-unix/* 找出全部鏈接X服務器的進程 ss -s 列出當前socket詳細信息 |
列出當前已經鏈接,關閉,等待的tcp鏈接:
# ss -s Total: 196 (kernel 244) TCP: 46 (estab 2, closed 28, orphaned 0, synrecv 0, timewait 27/0), ports 13 Transport Total IP IPv6 * 244 - - RAW 0 0 0 UDP 8 5 3 TCP 18 11 7 INET 26 16 10 FRAG 0 0 0
列出當前監聽全部tcp/udp進程信息:
ss -tunlp Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port udp UNCONN 0 0 *:604 *:* users:(("rpcbind",1277,7)) udp UNCONN 0 0 *:631 *:* users:(("cupsd",1347,9)) udp UNCONN 0 0 *:648 *:* users:(("rpc.statd",1320,5)) udp UNCONN 0 0 *:60161 *:*
ss列出全部http在鏈接狀態的信息:
# ss -o state established '( dport = :http or sport = :http )' Recv-Q Send-Q Local Address:Port Peer Address:Port 0 0 ::ffff:192.168.0.113:http ::ffff:192.168.253.30:61742 timer:(keepalive,120min,0)
ss列出處在FIN-WAIT-1狀態的http、https鏈接:
# ss -o state fin-wait-1 '( sport = :http or sport = :https )'
ss經常使用的state狀態:
established syn-sent syn-recv fin-wait-1 fin-wait-2 time-wait closed close-wait last-ack listen closing all : All of the above states connected : All the states except for listen and closed synchronized : All the connected states except for syn-sent bucket : Show states, which are maintained as minisockets, i.e. time-wait and syn-recv. big : Opposite to bucket state. |
-------------------------------------------------------------------------------------------
十一、netstat
Netstat是一個用於監控進出網絡的包和網絡接口統計的命令行工具。它是一個很是有用的工具,系統管理員能夠用來監控網絡性能,定位並解決網絡相關問題。
列出所有的tcp/udp鏈接
# netstat -a | more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:41038 *:* LISTEN tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 192.168.122.1:domain *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp 0 0 node2.soul.com:61209 *:* LISTEN tcp 0 0 localhost:smtp *:* LISTEN tcp 0 0 localhost:x11-ssh-offset *:* LISTEN tcp 0 0 localhost:6011 *:* LISTEN tcp 0 0 localhost:6012 *:* LISTEN tcp 0 0 localhost:6013 *:* LISTEN tcp 0 0 *:36994 *:* LISTEN tcp 0 0 node2.soul.com:9989 *:* LISTEN tcp 0 0 *:mysql *:* LISTEN tcp 0 0 node2.soul.com:ssh 172.16.250.40:53987 ESTABLISHED tcp 292 0 node2.soul.com:61209 node3.soul.com:52258 CLOSE_WAIT ....
顯示協議統計信息
# netstat -s Ip: 29462 total packets received 4994 with invalid addresses 0 forwarded 0 incoming packets discarded 24468 incoming packets delivered 21227 requests sent out Icmp: 805 ICMP messages received 6 input ICMP message failed. ICMP input histogram: destination unreachable: 804 redirects: 1 804 ICMP messages sent 0 ICMP messages failed ICMP output histogram: destination unreachable: 804 IcmpMsg: InType3: 804 InType5: 1 OutType3: 804
幫助信息
# netstat -h usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--help} netstat [-vnNcaeol] [<Socket> ...] netstat { [-veenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s } [delay] -r, --route display routing table -I, --interfaces=<Iface> display interface table for <Iface> -i, --interfaces display interface table -g, --groups display multicast group memberships -s, --statistics display networking statistics (like SNMP) -M, --masquerade display masqueraded connections
工具還有不少;且每一個工具的選項都有不少;具體使用方法須要在平時多加使用才能熟練掌握;在此就不一一介紹了。
若有錯誤;懇請糾正。