free看内存使用,ps看系统进程,netstat查看网络,tcpdump抓包

时间:2022-08-28 22:01:12

监控磁盘使用

命令:iostat 
查看磁盘的使用情况,着重看%util这项,值越大表示磁盘越忙。

[root@shuai-01 ~]# iostat -x
Linux 3.10.0-514.el7.x86_64 (shuai-01)  2017年11月28日     _x86_64_    (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.90    0.00    2.18    1.66    0.00   94.26

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdb               0.00     0.00    0.31    0.00     1.92     0.00    12.33     0.00   13.14   13.14    0.00  11.42   0.36
sda               0.00     0.06    6.46    2.69   204.21    68.73    59.63     0.14   14.94   13.02   19.56   4.59   4.20
dm-0              0.00     0.00    0.06    0.00     0.47     0.00    15.20     0.00    8.27    8.27    0.00   8.18   0.05

查看io最高的进程iotop

安装iotop包

[root@shuai-01 ~]# yum install -y iotop

free查看内存使用情况

命令:free 
命令格式:free [选项] 
选项: 
-m 用M显示单位 
-g 用G做单位 
-h 用合适的做单位

[root@shuai-01 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           976M        119M        546M        6.7M        310M        673M
Swap:          2.0G          0B        2.0G

计算机组成原理中:磁盘和CPU的读取速度差太多了。中间需要一个高速存储器来平衡一下。 
free看内存使用,ps看系统进程,netstat查看网络,tcpdump抓包 
total = used + free + cache + buffer

ps命令查看进程

查看linux系统有哪些进程在运行,就像Windows的任务管理器一样 
命令:ps 
静态显示全部进程

[root@shuai-01 ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.6 128104  6708 ?        Ss   08:38   0:05 /usr/lib/syst
root          2  0.0  0.0      0     0 ?        S    08:38   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    08:38   0:01 [ksoftirqd/0]
root          6  0.0  0.0      0     0 ?        S    08:38   0:01 [kworker/u256
root          7  0.0  0.0      0     0 ?        S    08:38   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    08:38   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        R    08:38   0:01 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S    08:38   0:00 [watchdog/0]
root         12  0.0  0.0      0     0 ?        S<   08:38   0:00 [khelper]
root         13  0.0  0.0      0     0 ?        S    08:38   0:00 [kdevtmpfs]
root         14  0.0  0.0      0     0 ?        S<   08:38   0:00 [netns]
root         15  0.0  0.0      0     0 ?        S    08:38   0:00 [khungtaskd]
root         16  0.0  0.0      0     0 ?        S<   08:38   0:00 [writeback]
root         17  0.0  0.0      0     0 ?        S<   08:38   0:00 [kintegrityd]
root         18  0.0  0.0      0     0 ?        S<   08:38   0:00 [bioset]
root         19  0.0  0.0      0     0 ?        S<   08:38   0:00 [kblockd]
root         20  0.0  0.0      0     0 ?        S<   08:38   0:00 [md]
  • PID 表示进程ID,可以靠PID来杀死进程(kill -9 pid)
  • VSZ 虚拟内存
  • RSS 物理内存
  • STAT 表示进程的状态

    • D 表示不能中断的进程(很占用CPU的)
    • R 正在运行中的进程
    • S 表示已经中断的进程(sleep)
    • T 表示已近停止或者暂停的进程(Ctrl + z 停止的进程)
    • Z 表示僵尸进程
    • < 表示优先级高的进程
    • N 表示优先级低的进程
    • s 表示主进程
    • + 表示前台运行的进程

    查看网络状态

    netstat 命令用来打印网络情况,系统开放端口,路由表等信息。

打印当前系统开启那些端口

[root@shuai-01 ~]# 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     1368/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     1974/master         
tcp6       0      0 :::22                   :::*                    LISTEN     1368/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN     1974/master         
udp        0      0 127.0.0.1:323           0.0.0.0:*                          541/chronyd         
udp6       0      0 ::1:323                 :::*                               541/chronyd         
raw6       0      0 :::58                   :::*                    7          588/NetworkManager  
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name    Path
unix  2      [ ACC ]     STREAM     LISTENING     12581    1/systemd           /run/lvm/lvmetad.socket
unix  2      [ ACC ]     STREAM     LISTENING     19828    1974/master         public/pickup
unix  2      [ ACC ]     STREAM     LISTENING     19834    1974/master         public/cleanup
unix  2      [ ACC ]     STREAM     LISTENING     19837    1974/master  

打印网络的连接状况

[root@shuai-01 ~]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0     52 192.168.176.135:22      192.168.176.1:50396     ESTABLISHED
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN     
udp        0      0 127.0.0.1:323           0.0.0.0:*                          
udp6       0      0 ::1:323                 :::*                               
raw6       0      0 :::58                   :::*                    7          
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     12581    /run/lvm/lvmetad.socket
unix  2      [ ACC ]     STREAM     LISTENING     19828    public/pickup
unix  2      [ ACC ]     STREAM     LISTENING     19834    public/cleanup
unix  2      [ ACC ]     STREAM     LISTENING     19837    public/qmgr
unix  2      [ ACC ]     STREAM     LISTENING     19859    public/flush

TCP/IP三次握手四次挥手: 
https://my.oschina.net/u/3497124/blog/1341334

查看tcp连接状态

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

tcpdump 抓包

命令:tcpdump 
安装

[root@shuai-01 ~]# yum install -y tcpdump

抓网卡的包:

[root@shuai-01 ~]# tcpdump -nn -i ens33
22:33:15.760001 IP 192.168.176.135.22 > 192.168.176.1.50396: Flags [P.], seq 280912:281188, ack 53, win 308, length 276
22:33:15.760297 IP 192.168.176.1.50396 > 192.168.176.135.22: Flags [P.], seq 53:105, ack 280912, win 158, length 52

第三列第四列:IP+port 连接ip +port

抓端口的包:

[root@shuai-01 ~]# tcpdump -nn port 80

抓那个地址的不是22端口的包:

[root@shuai-01 ~]# tcpdump -nn not port 22 and host 192.168.172.135

抓100个包保存在那个文件:

[root@shuai-01 ~]# tcpdump -nn -c 100 -w /tmp/1.cap

wireshark工具抓包 
安装wireshake

yum install -y wireshake

用法:

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

实际中,抓包分析:

主要是看源ip,源port,目标ip,目标port,还有协议之类的。再深入的就得借助图形化的抓包工具去分析了。