Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

10.6 監控io性能
10.7 free命令
10.8 ps命令
10.9 查看網絡狀態
10.10 linux下抓包

一、iostat與iotop命令

iostat命令與iotop,命令能夠看出系統磁盤的工作情況,及時發現磁盤問題,這兩個工具不是系統自帶的,分別需要yum安裝
其中iostat命令與前一篇博客中提到的sar命令在同一個(sysstat)包裏,如果能使用sar命令就能使用iostat命令。
安裝命令

yum install epel 先安裝epel擴展源
yum install sysstat iotop

(一)iostat命令,看util 如果數值過高,說明磁盤很忙或者出現問題。
Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包
查看磁盤的使用情況

iostat -x

Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包
注意標紅處數值,系統中的解釋如下,反正這個數值很高系統就反應很慢了,要麼換硬盤,要麼查出是什麼導致磁盤使用量飆升。
%util Percentage of elapsed time during which I/O requests were issued to the device (bandwidth utilization for the device). Device saturation occurs when this value is close to 100%.

(二)iotop,產看下哪一個進程佔用進程較多
Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

在具體服務器上看的更明顯,磁盤讀寫最多的在第一排。

二、free命令

free命令用於查看內存的使用量。一般用free -h命令,看得要舒服點^^
Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

其中

total=used+free+shared + buff/cache
available=free+shared + buff/cache
total=used+available
cache指的是磁盤到cpu途中經過的內存區
buff指的是cpu到磁盤間途中經過的內存區

三、ps命令

ps命令用於查看當前的系統進程,ps和top顯示的結果很像
兩種常用查看方式

1、ps aux
2、ps -elf

建議用ps aux
Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

第一行各個項目的含義:
USER:用戶名
PID:進程的PID號,常用與kill命令強制關閉進程,默認是從小到大排列
%CPU:CPU佔用率
%MEM:內存佔用率
VSZ:進程所使用的虛存的大小(Virtual Size)
RSS:物理內存使用,和top命令res一樣
TTY:終端號,自己的終端用tty命令可以看到
STAT:進程狀態,該項內容較重要
D:保護進程,不能中斷的進程
R:run ,在運行的進程
S:大寫的S表示sleep狀態的進程,vmstat運行時是sleep狀態
T:暫停的進程
<:高優先級的進程
N:低優先級的進程
L:內存中內存分頁鎖定的進程
s:小寫的s,主進程
l:小寫的L,多線程進程
+:前臺進程
START:進程開始時間
TIME:進程運行的時間
COMMAND:進程名

(一)應用舉例

1、查看某一個程序或者服務是否在運行

ps aux | grep sshd 這裏的sshd可以是任意程序,比如我們經常使用的ngix、mysql等等。

Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

2、根據pid強制關閉某一進程

kill (pid號) 比如kill 1571

pid號通過 ps aux |grep '程序名'方式查看

先運行一個命令並放到後臺
Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包
現在我們根據他的pid1571把他強制關閉
Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包
這時我們在看下ps aux 看下進程表就不存在這個進程了。
Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

出現殭屍進程的場景,啓用nigix,當父進程被意外殺掉時,子進程就可能進入殭屍進程

3、通過進程號查看進程的路徑

ls -l /proc/(pid號)

Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包
通過這條命令可以看出進程是哪個程序創建的。

四、netstat命令

netstat用於查看網絡狀態,linux服務器運行各種服務後需要開放一些特定的端口讓其他ip的設備去訪問來提供相應的服務,比如說xhsell訪問服務器就要用到22端口。windows下也有netstat命令 ,也有查看開放端口的功能。

windows下的netstat命令
Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

tcp三次握手、四次揮手的內容參見:www.doc88.com/p-9913773324388.html

netstat命令應用示例

1、netstat -lnp查看監聽端口,需要
Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包
如果只需要查看tcp的

netstat -lntp
Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

2、如果只需要查看tcp與udp的

netstat -ltnup

Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

3、netstat -an查看系統所有的網絡連接狀況
Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

4、ss -an查看網絡連接狀況

Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

這個命令也能看鏈接情況,但是沒有顯示連接的進程,而netstat 命令就可以看到

5、通過netstat命令和awk命令查看網絡鏈接各種狀態的總數。

netstat -an|awk '/^txp/ {++stat[$NF]} END {for(key in sta) print key,"\t",sta [key]}'

Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包
命令有點長,需要記住,最好能理解。

五、抓包工具

網絡出現異常的時候會需要抓包,網絡出現異常流量時需要抓包看看是出現了什麼問題,比如看到***,頻繁訪問一些端口的一些請求時就要注意自己是不是被***了。抓取網絡流量需要使用tcpdump工具或者wireshark工具。

tcpdump工具

首先要使用yum安裝tcpdump工具,包名就是tcpdump

yum install tcpdump

用法示例
抓取某個網卡的包

txpdump -nn -i (網卡名,用nmcli dev show查看)

Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

圖示這個ens33就是網卡名,注意在centos6中網卡是從ens1開始的,而且網卡名會變,而centos7不會,他是根據硬件信息命令名的。

看看抓包結果

tcpdump -nn -i ens33

Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

命令選項中的n就是將源主機顯示爲ip地址+端口號形式,默認顯示的是主機名+服務名。我們主要看包從哪來,到哪去,走的是哪個端口的信息。

一般情況下,大部分的包都應該是tcp的包,如果有很多udp的包時就有可能服務器被DDOS***了,這時就要藉助專業工具或硬件來防護

2、指定端口和網卡抓包

tcpdump -nn ens33(網卡名) port22(端口號)

Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

3、抓取網卡網絡通信的10個包並將他導入/tmp/1.cap

tcpdump -i ens33 -c 10 -w /tmp/1.cap

Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

這個文件是不可cat的!
查看文件信息:

file /tmp/1.cap

Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

讀取具體內容

tcpdump -r /tmp/1.cap

Linux系統管理初步(二)iostat(iptop)、free、ps、netstat命令與網絡抓包

wireshark工具

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章