IO監控/ps/free/netstat/tcpdump/ifconfig

iostat工具 : 相似sar,用於監控cpu和磁盤IO性能linux

安裝:ios

[root@localhost ~]# yum -y install sysstat

*與sar工具在同一個包中,如已安裝sar,便可直接使用iostatweb

使用:shell

[root@localhost ~]# iostat -x
Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 	2019年09月24日 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.08    0.00    0.14    0.01    0.00   99.77

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.01    0.07    0.11     2.63     4.52    80.50     0.00    3.17    0.97    4.68   0.99   0.02
scd0              0.00     0.00    0.01    0.00     0.11     0.00    21.98     0.00    1.43    1.43    0.00   1.37   0.00
dm-0              0.00     0.00    0.07    0.12     2.49     4.50    75.86     0.00    3.30    1.02    4.64   0.95   0.02
dm-1              0.00     0.00    0.00    0.00     0.03     0.00    54.67     0.00    0.24    0.24    0.00   0.20   0.00

-x 參數:輸出更詳細的IO設備信息(主要是最後一列:util) avg-cpu:cpu使用狀況統計 iowait列:表示cpu用於等待IO請求的完成時間(值超過50%,或者明顯大於%system、%user以及%idle,表示IO可能存在問題。) rkB/s:每秒讀取數據量(KB) wkB/s:每秒寫入數據量(KB) util:IO操做佔用cpu的時間,表示磁盤忙碌狀況(若是值超過50%但每秒讀寫數據量又不高表示磁盤可能存在問題)vim

iotop: 相似top,區別在於top監控進程的cpu和內存使用率,iotop監控程序的IO使用情況緩存

安裝:網絡

[root@localhost dev]# yum -y install iotop

在這裏插入圖片描述

IO列:表示進程的IO使用情況 按o鍵:只顯示有IO操做的進程多線程

free命令:查看內存和swap使用狀況dom

使用:ssh

[root@localhost dev]# free 
              total        used        free      shared  buff/cache   available
Mem:        1005628      133616      411228        7652      460784      668556
Swap:       2097148           0     2097148
[root@localhost dev]# free -h
              total        used        free      shared  buff/cache   available
Mem:           982M        130M        401M        7.5M        449M        653M
Swap:          2.0G          0B        2.0G

-h 參數:以MB爲單位顯示 total:內存總量 used:已使用量 free:空閒內存 buff:緩衝空間 cache:緩存空間 available:可以使用空間

cache與buffer的區別:

磁盤--->內存(cache)--->cpu 當cpu須要讀取磁盤數據時,數據會先到內存中,供cpu讀取、處理、計算等操做,此時數據存在內存中的cache緩存空間中

cpu--->內存(buffer)--->磁盤 當cpu處理的數據要被寫入磁盤時,數據會先進入內存的buffer空間中,在寫入磁盤

補充: total=used+free+buff/cache avaliable=free+buff/cache中剩餘未使用的空閒部分

ps命令:輸出進程信息(靜態顯示) -aux 參數:顯示完整信息 -ef 參數:顯示信息沒有aux詳細(通常用於查找進程的PID,kill進程)

使用:

在這裏插入圖片描述

USER:啓動進程的用戶 PID:進程號 STAT:進程狀態 START:啓動時間 TIME:運行了多久 COMMAND:進程名

根據進程號殺進程:

[root@localhost dev]# ps -ef|grep auditd
root        91     2  0 9月23 ?       00:00:00 [kauditd]
root      5080     1  0 9月23 ?       00:00:00 /sbin/auditd
root     16496 15918  0 20:49 pts/1    00:00:00 grep --color=auto auditd
[root@localhost dev]# kill 5080

STAT進程狀態: D:不能中斷的進程 R:run,運行狀態的進程 S:休眠狀態的進程(不運行時進入休眠狀態的進程,運行時變爲S+) T:暫停的進程 Z:殭屍進程 <:高優先級進程 N:低優先級進程 L:內存中被鎖內存分頁 s:主進程 l:多線程進程(sl包含多個線程的主進程) +:前臺運行的進程

參數: -t : 指明顯示TCP端口 -u : 指明顯示UDP端口 -l : 僅顯示監聽套接字 -p : 顯示進程標識符和程序名稱,每個套接字/端口都屬於一個程序。 -n : 不進行DNS輪詢,顯示IP(能夠加速操做)

查看網絡監聽端口:-lnp參數

[root@localhost dev]# netstat -lnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6078/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6231/master         
tcp6       0      0 :::22                   :::*                    LISTEN      6078/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      6231/master         
udp        0      0 127.0.0.1:323           0.0.0.0:*                           5366/chronyd        
udp6       0      0 ::1:323                 :::*                                5366/chronyd        
raw6       0      0 :::58                   :::*                    7           5594/NetworkManager

只查看tcp類型的端口:-lntp參數

[root@localhost dev]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6078/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6231/master         
tcp6       0      0 :::22                   :::*                    LISTEN      6078/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      6231/master

查看系統端口使用狀況:

[root@localhost dev]# netstat -anp

ss命令:與netstat -an相似(不能顯示PID和程序名)

[root@localhost dev]# ss -an

顯示tcp各類鏈接狀態的數量:netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'

[root@localhost dev]# netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
LISTEN 	 4
ESTABLISHED 	 1

安裝:

[root@localhost ~]# yum -y install tcpdump

用法:

[root@localhost ~]# tcpdump -nn -i ens33

-nn:表示將兩個(源地址/目標地址)hostname以ip顯示 -i:指定網卡名稱

指定端口:

[root@localhost ~]# tcpdump -nn -i ens33 port 80

*只抓80端口的數據包

取反:(只抓除了80端口的全部包)

[root@localhost ~]# tcpdump -nn -i ens33 not port 80

多條件:

[root@localhost ~]# tcpdump -nn -i ens33 not port 80 and host 192.168.234.1

*只抓 ip爲192.168.234.1的地址除了80端口的包

-c參數:指定抓包數量

[root@localhost ~]# tcpdump -nn -i ens33 -c 10

-w參數:將數據包寫入指定文件

[root@localhost ~]# tcpdump -nn -i ens33 -c 5 -w /tmp/1.cap
tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
5 packets captured
5 packets received by filter
0 packets dropped by kernel

查看數據包文件:tcpdump -r

[root@localhost ~]# tcpdump -r /tmp/1.cap 
reading from file /tmp/1.cap, link-type EN10MB (Ethernet)
23:04:16.355507 IP localhost.localdomain.ssh > 192.168.234.1.52014: Flags [P.], seq 2733320790:2733320922, ack 2721249905, win 266, length 132
23:04:16.355793 IP 192.168.234.1.52014 > localhost.localdomain.ssh: Flags [.], ack 132, win 8211, length 0
23:04:22.622548 IP 192.168.234.1.52014 > localhost.localdomain.ssh: Flags [P.], seq 1:69, ack 132, win 8211, length 68
23:04:22.622708 IP localhost.localdomain.ssh > 192.168.234.1.52014: Flags [P.], seq 132:184, ack 69, win 266, length 52
23:04:22.667220 IP 192.168.234.1.52014 > localhost.localdomain.ssh: Flags [.], ack 184, win 8210, length 0

補充: tshark工具: 查看指定網卡80端口的web訪問狀況

安裝:

[root@localhost ~]# yum -y install wireshark

命令:

[root@localhost ~]# tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"

*能夠查看訪問時間、訪問IP、訪問的域名、訪問的文件、HTTP請求類型(相似web訪問日誌)

ifconfig命令用於查看或更改網卡配置信息,啓動或關閉網卡

安裝:

[root@localhost ~]# yum -y install net-tools

使用:

[root@localhost ~]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.234.128  netmask 255.255.255.0  broadcast 192.168.234.255
        inet6 fe80::777d:eb3e:9e03:3457  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:10:01:94  txqueuelen 1000  (Ethernet)
        RX packets 253157  bytes 67090793 (63.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 343338  bytes 103040732 (98.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 120  bytes 10496 (10.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 120  bytes 10496 (10.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

-a參數:顯示全部網卡信息,如未加-a參數,只顯示已激活網卡的信息

ifdown:關閉網卡

[root@localhost ~]# ifdown ens33

ifup:啓動網卡

[root@localhost ~]# ifup ens33

經常使用於在修改了網卡配置後重啓單個指定的網卡,而不須要重啓網絡服務影響全部網卡:

[root@localhost ~]# ifdown ens33 && ifup ens33

添加虛擬網卡:ens33:01

[root@localhost ~]# cd /etc/sysconfig/network-scripts/

[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:01

修改虛擬網卡配置文件:

[root@localhost network-scripts]# vim ifcfg-ens33:01

修改如下內容:NAME/DEVICE/IPADDR

在這裏插入圖片描述

重啓網卡:

[root@localhost ~]# ifdown ens33 && ifup ens33

虛擬網卡已在運行:

[root@localhost ~]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.234.128  netmask 255.255.255.0  broadcast 192.168.234.255
        inet6 fe80::777d:eb3e:9e03:3457  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:10:01:94  txqueuelen 1000  (Ethernet)
        RX packets 271863  bytes 87467742 (83.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 349091  bytes 103525345 (98.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33:01: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.234.129  netmask 255.255.255.0  broadcast 192.168.234.255
        ether 00:0c:29:10:01:94  txqueuelen 1000  (Ethernet)

mii-tool命令:查看網絡接口狀態

[root@localhost ~]# mii-tool ens33
ens33: negotiated 1000baseT-FD flow-control, link ok

*最後一列 link值爲ok表示網卡已鏈接

ethtool命令:與mii-tool命令相似

[root@localhost ~]# ethtool ens33

*最後一行 Link detected值爲yes表示網卡已鏈接

linux下更改hostname:

臨時更改,終端從新鏈接後生效,系統重啓後失效

[root@localhost ~]# hostname test

永久更改:

[root@test ~]# hostnamectl set-hostname linux
[root@linux ~]# cat /etc/hostname 
linux

DNS配置文件:

[root@linux ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.234.2

*該文件中的DNS配置信息來自於網卡配置文件中定義的DNS地址,能夠臨時更改

域名重定向文件:

[root@linux ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

*可使單個或多個域名在訪問時指向指定的 IP地址

[root@linux ~]# echo '192.168.234.129 www.baidu.com' >> /etc/hosts

*將訪問百度時的地址指向虛擬網卡地址192.168.234.129

[root@linux ~]# ping www.baidu.com
PING www.baidu.com (192.168.234.129) 56(84) bytes of data.
64 bytes from www.baidu.com (192.168.234.129): icmp_seq=1 ttl=64 time=0.154 ms
64 bytes from www.baidu.com (192.168.234.129): icmp_seq=2 ttl=64 time=0.111 ms

*域名重定向只在本機生效

相關文章
相關標籤/搜索