10.1 使用w查看系统负载

w        查看系统负载

[root@arslinux-01 ~]# w
20:13:32 up 31 min,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.194.1    19:51    4.00s  0.13s  0.07s w
[root@arslinux-01 ~]# date
2019年 04月 09日 星期二 20:13:42 CST

网络登录的是pts/0,pts/1等,虚拟机直接登录时tty1...


load average: 0.00, 0.01, 0.05表示:1分钟5分钟15分钟时间段内,系统的负载

该时间段内,使用CPU的活动的进程有多少个(平均值)


有多少逻辑CPU,可以在cpuinfo中查看,processor参数,0表示有cpu1个,1为两个,以此类推

【0413】日常运维——常用命令_nload

当CPU为一个时,第一个数字1为最理想;CPU为8个时,第一个数字为8最理想,此时processor为7每一个CPU都有一个进程占用,是理想状态,不忙也不闲,高于这个数字就表示要排队了,比较忙。

一般情况下,最关注的第一个数字。


uptime        也可以查看系统负载

[root@arslinux-01 ~]# uptime
21:20:53 up 40 min,  1 user,  load average: 0.01, 0.03, 0.05

(uptime比w较精简,一般使用w命令即可)


10.2 vmstat命令

CPU 不够用的话,要考虑什么原因导致 CPU 不够用,进程都在干什么,有哪些任务在使用 CPU ?

需要进一步查看系统信息


vmstat                可以看到 CPU,内存,虚拟磁盘,交换分区,磁盘,系统进程等信息

[root@arslinux-01 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
2  0      0 716340   2200 145592    0    0    37     4   44  124  0  1 99  0  0


vmstat 时间(s)             表示按单位时间显示一次,Ctrl + C结束

[root@arslinux-01 ~]# 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
2  0      0 716068   2200 145624    0    0    36     4   44  122  0  1 99  0  0
0  0      0 716072   2200 145624    0    0     0     2   32   45  1  1 98  0  0
0  0      0 716072   2200 145624    0    0     0     0   34   50  0  0 100  0  0
0  0      0 716072   2200 145624    0    0     0     0   43   57  0  0 100  0  0
0  0      0 716072   2200 145624    0    0     0     0   33   41  0  0 100  0  0
0  0      0 716072   2200 145624    0    0     0     0   24   35  0  0 100  0  0
0  0      0 716072   2200 145624    0    0     0     0   26   38  0  0 100  0  0
0  0      0 716072   2200 145624    0    0     0     0   27   36  0  1 99  0  0
^C
[root@arslinux-01 ~]#


vmstat 时间(s) 次数            表示按单位时间显示一次,只显示几次

[root@arslinux-01 ~]# vmstat 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
2  0      0 716172   2200 145656    0    0    36     4   43  120  0  1 99  0  0
0  0      0 716148   2200 145656    0    0     0     0   32   51  0  0 100  0  0
0  0      0 716148   2200 145656    0    0     0     0   36   50  0  0 99  1  0
0  0      0 716148   2200 145656    0    0     0     0   23   35  0  0 100  0  0
0  0      0 716148   2200 145656    0    0     0     0   29   39  0  0 100  0  0
[root@arslinux-01 ~]#

每秒显示1次,共显示5次


r = run         有多少进程处于 run 的状态 (无论是在使用CPU中,还是在排队中,都是 r 状态)

b = block    表示有多少进程在等待(进程被CPU以外的,比如硬盘、网络阻断,处于等待状态)

swpd            数字不断变化,交换分区和内存频繁交换数据,内存不够了

si                有多少kb数据从swap进入到内存中(和swap有关)

so                有多少kb数据从内存出来到swap中(和swap有关)

bi                从磁盘里进入到内存里去,读的数据量(和磁盘有关)

bo                从磁盘里进入到内存里去,写的数据量(和磁盘有关)

us                用户态的资源占用CPU的百分比(数字长时间大于50,表示资源不够, us+sy+id=100)

sy                系统占用

id                空闲

wa                 wait 等待CPU的进程占百分比


10.3 top命令

top 命令

3秒显示一次,动态显示占用最高的进程

[root@arslinux-01 ~]# top
top - 21:53:44 up  1:13,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  94 total,   1 running,  93 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   995896 total,   706728 free,   134772 used,   154396 buff/cache
KiB Swap:  1999868 total,  1999868 free,        0 used.   690576 avail Mem

PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
1 root      20   0  128040   6540   4136 S  0.0  0.7   0:02.20 systemd
2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd
3 root      20   0       0      0      0 S  0.0  0.0   0:00.30 ksoftirqd/0
5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H
6 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kworker/u256:0
7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0
8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh
9 root      20   0       0      0      0 S  0.0  0.0   0:01.00 rcu_sched
10 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 lru-add-drain
11 root      rt   0       0      0      0 S  0.0  0.0   0:00.03 watchdog/0
13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs
14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns
15 root      20   0       0      0      0 S  0.0  0.0   0:00.00 khungtaskd
16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback
17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd
18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
20 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
21 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kblockd
22 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 md
23 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 edac-poller
24 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 watchdogd
30 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kswapd0
31 root      25   5       0      0      0 S  0.0  0.0   0:00.00 ksmd
32 root      39  19       0      0      0 S  0.0  0.0   0:00.02 khugepaged
33 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 crypto
41 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kthrotld
42 root      20   0       0      0      0 S  0.0  0.0   0:00.17 kworker/u256:1
43 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kmpath_rdacd
44 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kaluad
45 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kpsmoused
47 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ipv6_addrconf
60 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 deferwq
91 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kauditd
1676 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 nfit
1702 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 mpt_poll_0
1707 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ata_sff
1708 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 mpt/0
1766 root      20   0       0      0      0 S  0.0  0.0   0:00.00 scsi_eh_0
1769 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 scsi_tmf_0
1786 root      20   0       0      0      0 S  0.0  0.0   0:00.01 scsi_eh_1
1788 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 scsi_tmf_1
1791 root      20   0       0      0      0 S  0.0  0.0   0:00.00 scsi_eh_2
1797 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 scsi_tmf_2
1939 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ttm_swap
1946 root     -51   0       0      0      0 S  0.0  0.0   0:00.00 irq/16-vmwgfx
2919 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset

st         被偷走了的 CPU 百分比,服务器做了虚拟化,有些虚拟机可能偷走部分 CPU


★平时需要多关注 us ,长时间在 60% 以上,肯定对 CPU 的寿命会有影响。

系统负载和CPU使用率不一样,系统负载可以很高,但是CPU使用率us可能为0。

大部分情况下,us百分比很高,系统负载肯定很高。


RES 物理内存大小 单位KB


默认情况下,会按照CPU的百分比去从高到低排列。

如果想要按使用内存占比排列,那么按 M 就可以切换到内存排列,按 P 切换回CPU排列

【0413】日常运维——常用命令_sar_02


按数字1,可以查看所有CPU的使用情况 (按1来回切换)

【0413】日常运维——常用命令_free_03

按q键可以退出top命令


top -c            可以查看具体命令,全局的路径

【0413】日常运维——常用命令_sar_04


top -bn1                静态显示所有信息(适合在写脚本时使用

[root@arslinux-01 ~]# top -bn1
top - 22:15:10 up  1:34,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  94 total,   1 running,  93 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.9 us,  5.9 sy,  0.0 ni, 88.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   995896 total,   706672 free,   134756 used,   154468 buff/cache
KiB Swap:  1999868 total,  1999868 free,        0 used.   690528 avail Mem

PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
1 root      20   0  128040   6540   4136 S  0.0  0.7   0:02.23 systemd
2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd
3 root      20   0       0      0      0 S  0.0  0.0   0:00.33 ksoftirqd/0
5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H
6 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kworker/u256:0
7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0
8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh
9 root      20   0       0      0      0 S  0.0  0.0   0:01.01 rcu_sched
10 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 lru-add-drain
11 root      rt   0       0      0      0 S  0.0  0.0   0:00.04 watchdog/0
13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs
14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns
15 root      20   0       0      0      0 S  0.0  0.0   0:00.00 khungtaskd
16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback
17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd
18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
20 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
21 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kblockd
22 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 md
23 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 edac-poller
24 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 watchdogd
30 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kswapd0
31 root      25   5       0      0      0 S  0.0  0.0   0:00.00 ksmd
32 root      39  19       0      0      0 S  0.0  0.0   0:00.03 khugepaged
33 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 crypto
41 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kthrotld
42 root      20   0       0      0      0 S  0.0  0.0   0:00.22 kworker/u256:1
43 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kmpath_rdacd
44 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kaluad
45 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kpsmoused
47 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ipv6_addrconf
60 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 deferwq
91 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kauditd
1676 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 nfit
1702 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 mpt_poll_0
1707 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ata_sff
1708 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 mpt/0
1766 root      20   0       0      0      0 S  0.0  0.0   0:00.00 scsi_eh_0
1769 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 scsi_tmf_0
1786 root      20   0       0      0      0 S  0.0  0.0   0:00.01 scsi_eh_1
1788 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 scsi_tmf_1
1791 root      20   0       0      0      0 S  0.0  0.0   0:00.00 scsi_eh_2
1797 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 scsi_tmf_2
1939 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ttm_swap
1946 root     -51   0       0      0      0 S  0.0  0.0   0:00.00 irq/16-vmwgfx
2919 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
2924 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfsalloc
2930 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs_mru_cache
2933 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-buf/sda3
2937 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-data/sda3
2938 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-conv/sda3
2939 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-cil/sda3
2940 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-reclaim/sda
2941 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-log/sda3
2942 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-eofblocks/s
2943 root      20   0       0      0      0 S  0.0  0.0   0:00.39 xfsaild/sda3
2944 root       0 -20       0      0      0 S  0.0  0.0   0:00.04 kworker/0:1H
3012 root      20   0   37112   2812   2484 S  0.0  0.3   0:00.23 systemd-journal
3037 root      20   0  340348   7596   2620 S  0.0  0.8   0:00.02 lvmetad
3048 root      20   0   48208   5632   2864 S  0.0  0.6   0:00.85 systemd-udevd
5045 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kdmflush
5047 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
5085 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-buf/sda1
5091 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-data/sda1
5096 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-conv/sda1
5097 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-cil/sda1
5106 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-reclaim/sda
5113 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-log/sda1
5117 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-eofblocks/s
5118 root      20   0       0      0      0 S  0.0  0.0   0:00.00 xfsaild/sda1
6095 root      16  -4   62044   1084    496 S  0.0  0.1   0:00.01 auditd
6238 root      20   0   26376   1744   1440 S  0.0  0.2   0:00.07 systemd-logind
6246 root      20   0   99564   6112   4504 S  0.0  0.6   0:00.03 VGAuthService
6248 root      20   0  300936   6492   5116 S  0.0  0.7   0:07.96 vmtoolsd
6256 polkitd   20   0  612996  10956   4932 S  0.0  1.1   0:00.11 polkitd
6260 dbus      20   0   66456   2584   1896 S  0.0  0.3   0:00.24 dbus-daemon
6271 chrony    20   0  117784   1812   1352 S  0.0  0.2   0:00.16 chronyd
6382 root      20   0  126284   1696   1068 S  0.0  0.2   0:00.42 crond
6402 root      20   0  110092    860    728 S  0.0  0.1   0:00.01 agetty
6416 root      20   0  358512  29328   7184 S  0.0  2.9   0:01.32 firewalld
6586 root      20   0  473980  10744   6688 S  0.0  1.1   0:00.41 NetworkManager
7066 root      20   0  112756   4320   3292 S  0.0  0.4   0:00.03 sshd
7068 root      20   0  573820  17128   6036 S  0.0  1.7   0:01.54 tuned
7070 root      20   0  220784   4072   3300 S  0.0  0.4   0:00.81 rsyslogd
7197 root      20   0   89544   2084   1072 S  0.0  0.2   0:00.06 master
7203 postfix   20   0   89648   4064   3068 S  0.0  0.4   0:00.02 pickup
7204 postfix   20   0   89716   4092   3088 S  0.0  0.4   0:00.01 qmgr
7341 root      20   0  158760   5592   4240 S  0.0  0.6   0:00.74 sshd
7344 root      20   0  116088   2836   1796 S  0.0  0.3   0:00.17 bash
7363 root      20   0       0      0      0 S  0.0  0.0   0:03.62 kworker/0:1
7486 root      20   0       0      0      0 S  0.0  0.0   0:00.02 kworker/0:2
7487 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kworker/0:0
7490 root      20   0  161880   2108   1548 R  0.0  0.2   0:00.00 top
[root@arslinux-01 ~]#


·杀死进程:kill + 进程的PID


10.4 sar命令

监控系统状态

安装 sar 命令:

[root@arslinux-01 ~]# sar
-bash: sar: 未找到命令
[root@arslinux-01 ~]# yum install -y sysstat
[root@arslinux-01 ~]# sar
无法打开 /var/log/sa/sa12: 没有那个文件或目录

·sar 命令如果不加具体选项,默认会去调用系统中保存在 /var/log/sa 中的历史文件

·sar 每十分钟会把系统状态过滤一遍,保存在 /var/log/sa 目录下,因此,安装完成后需要等待十分钟后,才能不加参数使用


sar -n DEV 时间 次数    网卡流量

[root@arslinux-01 ~]# sar -n DEV 1 5
Linux 3.10.0-957.el7.x86_64 (arslinux-01) 2019年04月12日 _x86_64_(1 CPU)

19时55分23秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
19时55分24秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19时55分24秒     ens33      1.01      0.00      0.06      0.00      0.00      0.00      0.00

19时55分24秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
19时55分25秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19时55分25秒     ens33      2.00      2.00      0.12      0.44      0.00      0.00      0.00

19时55分25秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
19时55分26秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19时55分26秒     ens33      1.00      1.00      0.06      0.38      0.00      0.00      0.00

19时55分26秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
19时55分27秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19时55分27秒     ens33      1.00      1.00      0.06      0.38      0.00      0.00      0.00

19时55分27秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
19时55分28秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19时55分28秒     ens33      1.00      1.00      0.06      0.38      0.00      0.00      0.00

平均时间:     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:     ens33      1.20      1.00      0.07      0.32      0.00      0.00      0.00
[root@arslinux-01 ~]#

每隔一秒查看一次,共查看5次


rxpck/s:接收到的数据包   数值为几千,比较正常,上万就不太正常了

txpck/s:发送出去的数据包

rxkB/s:接收的数据量

txkB/s:发送出去的数据量

rxcmp/s:txcmp/s:rxmcst/s不重要,一般都是 0


[root@arslinux-01 ~]# sar
Linux 3.10.0-957.el7.x86_64 (arslinux-01) 2019年04月12日 _x86_64_(1 CPU)
[root@arslinux-01 ~]# ls /var/log/sa
sa12

日期为几号,就是sa多少,13号就是sa13,17号就是sa17


sar -n DEV -f /var/log/sa/sa??         查看网卡历史数据,??为日期

/var/log/sa 目录下数据最多保留1个月


sar -q 查询间隔 查询次数                 查看系统负载

[root@arslinux-01 ~]# sar -q 1 5
Linux 3.10.0-957.el7.x86_64 (arslinux-01) 2019年04月12日 _x86_64_(1 CPU)

20时11分35秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
20时11分36秒         1       114      0.00      0.01      0.05         0
20时11分37秒         1       114      0.00      0.01      0.05         0
20时11分38秒         0       114      0.00      0.01      0.05         0
20时11分39秒         1       114      0.00      0.01      0.05         0
20时11分40秒         1       114      0.00      0.01      0.05         0
平均时间:         1       114      0.00      0.01      0.05         0



sar -q 默认查看当天

[root@arslinux-01 ~]# sar -q
Linux 3.10.0-957.el7.x86_64 (arslinux-01) 2019年04月12日 _x86_64_(1 CPU)
20时00分02秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
20时10分01秒         0       114      0.00      0.01      0.05         0
平均时间:         0       114      0.00      0.01      0.05         0


sar -b 查询间隔 查询次数             查看磁盘数据

[root@arslinux-01 ~]# sar -b 1 5
Linux 3.10.0-957.el7.x86_64 (arslinux-01) 2019年04月12日 _x86_64_(1 CPU)

20时14分48秒       tps      rtps      wtps   bread/s   bwrtn/s
20时14分49秒      0.00      0.00      0.00      0.00      0.00
20时14分50秒      0.00      0.00      0.00      0.00      0.00
20时14分51秒      0.00      0.00      0.00      0.00      0.00
20时14分52秒      0.00      0.00      0.00      0.00      0.00
20时14分53秒      0.00      0.00      0.00      0.00      0.00

平均时间:      0.00      0.00      0.00      0.00      0.00


/var/log/sa/ 下不仅会生成 sa 日期文件,还会生成 sar 日期文件

sa 日期是二进制文件,只能 sar 命令去查看,无法 cat;而 sar日期 文件是可以 cat 的


10.5 nload命令

nload 默认是没有安装的,需要安装 nload

在安装 nload 前,需要安装 epel-release

[root@arslinux-01 ~]# nload
-bash: nload: 未找到命令
[root@arslinux-01 ~]# yum install -y epel-release
[root@arslinux-01 ~]# yum install -y nload

【0413】日常运维——常用命令_top_05

按右方向键,可以切换到另外一个网卡

【0413】日常运维——常用命令_sar_06

实际运行图

【0413】日常运维——常用命令_nload_07

通常情况下,我们买带宽指的是 outgoing 的带宽

如果遇到***,那么 Incoming 流量会非常大


10.6 监控 io 性能

iostat             查看磁盘使用情况

[root@arslinux-01 ~]# iostat
Linux 3.10.0-957.el7.x86_64 (arslinux-01) 2019年04月12日 _x86_64_(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
0.25    0.00    0.39    0.01    0.00   99.35

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.92        23.78         9.09     219756      84010
sdb               0.02         0.47         0.00       4336          0
scd0              0.00         0.11         0.00       1028          0
dm-0              0.00         0.11         0.00       1036          0


·每隔一秒查看一次磁盘使用情况

[root@arslinux-01 ~]# iostat 1


·每隔一秒查看磁盘情况一次,共查看两次

[root@arslinux-01 ~]# iostat 1 2
Linux 3.10.0-957.el7.x86_64 (arslinux-01) 2019年04月12日 _x86_64_(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
0.25    0.00    0.39    0.01    0.00   99.36

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.91        23.38         8.94     219756      84073
sdb               0.02         0.46         0.00       4336          0
scd0              0.00         0.11         0.00       1028          0
dm-0              0.00         0.11         0.00       1036          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
0.00    0.00    0.00    0.00    0.00  100.00

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.00         0.00         0.00          0          0
sdb               0.00         0.00         0.00          0          0
scd0              0.00         0.00         0.00          0          0
dm-0              0.00         0.00         0.00          0          0


iostat -x

[root@arslinux-01 ~]# iostat -x
Linux 3.10.0-957.el7.x86_64 (arslinux-01) 2019年04月12日 _x86_64_(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
0.25    0.00    0.38    0.01    0.00   99.36

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.02    0.64    0.26    23.28     8.91    71.10     0.00    0.87    0.62    1.47   0.47   0.04
sdb               0.00     0.00    0.02    0.00     0.46     0.00    46.13     0.00    0.38    0.38    0.00   0.28   0.00
scd0              0.00     0.00    0.00    0.00     0.11     0.00   114.22     0.00    1.56    1.56    0.00   1.22   0.00
dm-0              0.00     0.00    0.00    0.00     0.11     0.00    48.19     0.00    0.30    0.30    0.00   0.23   0.00

%util表示一秒内IO操作所占的比例,数字很大,说明磁盘很忙

如果数字很大,那么磁盘读写也会很大;但是如果读写不大,而%util很大,那么磁盘可能存在故障


iotop

iotop 默认没有安装,需要安装

iotop 安装:

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


iotop 和 top 命令类似,都是动态显示

[root@arslinux-01 ~]# iotop

【0413】日常运维——常用命令_top_08


10.7 free命令

free 查看内存使用情况

[root@arslinux-01 ~]# free
total        used        free      shared  buff/cache   available
Mem:         995896      130944      710480        7800      154472      694244
Swap:       1999868           0     1999868


free -m 指定以 M 为单位,查看内存使用情况

[root@arslinux-01 ~]# free -m
total        used        free      shared  buff/cache   available
Mem:            972         127         693           7         150         677
Swap:          1952           0        1952


free -h 自动以合适的单位,并显示单位,方便查看,更人性化

[root@arslinux-01 ~]# free -h
total        used        free      shared  buff/cache   available
Mem:           972M        127M        693M        7.6M        150M        677M
Swap:          1.9G          0B        1.9G


buffer 缓冲:CPU——>内存(buffer)——>磁盘

cache 缓存:磁盘——>内存(cache)——>CPU


total = used + free + buff/cache

available = free + buff/cache剩余部分

请注意,这只是一个很理想的计算方式,实际中的数据往往有较大的误差。


10.8 ps命令

ps aux 查看系统进程

[root@arslinux-01 ~]# ps aux

【0413】日常运维——常用命令_top_09

ps aux | grep 关键字 查看某个进程是否在运行

[root@arslinux-01 ~]# ps aux |grep mysql
root       7793  0.0  0.0 112724   988 pts/0    R+   22:52   0:00 grep --color=auto mysql
[root@arslinux-01 ~]# ps aux |grep nginx
root       7795  0.0  0.0 112724   988 pts/0    S+   22:53   0:00 grep --color=auto nginx



ps -elf 查看系统所有进程(和 ps aux 差不多)

【0413】日常运维——常用命令_vmstat_10


PID的用处:

1,kill进程用 kill + 进程号

2,查看进程所在目录  ll /proc/数字


STAT部分说明:

D         不能中断的进程

R         run状态的进程(某个时间段内在使用)

S         sleep状态进程 (vmstat运行时间很短,运行一下就sleep,并不会消耗CPU资源)

T         暂停的进程

+         前台进程

Z         僵尸进程(很少会有,但也会有)

<         高优先级进程

N         低优先级进程(不急)

L         内存中被锁了内存分页(不常见)

s         主进程

l         多线程进程(一个进程中有多个线程)


线程和进程的区别:

https://www.cnblogs.com/zhehan54/p/6130030.html

https://baijiahao.baidu.com/s?id=1611925141861592999&wfr=spider&for=pc


10.9 查看网络状态

netstat         查看网络状态(tcp/ip通讯状态)

[root@arslinux-01 ~]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0     52 arslinux-01:ssh         192.168.19:contamac_icm ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ]         DGRAM                    34934    /var/run/chrony/chronyd.sock
unix  2      [ ]         DGRAM                    21364    /run/systemd/shutdownd
unix  3      [ ]         DGRAM                    8926     /run/systemd/notify
unix  2      [ ]         DGRAM                    8928     /run/systemd/cgroups-agent
unix  5      [ ]         DGRAM                    8945     /run/systemd/journal/socket
unix  13     [ ]         DGRAM                    8947     /dev/log
unix  3      [ ]         STREAM     CONNECTED     34979
unix  3      [ ]         STREAM     CONNECTED     34088
unix  3      [ ]         STREAM     CONNECTED     39375
unix  3      [ ]         STREAM     CONNECTED     35794
unix  3      [ ]         STREAM     CONNECTED     39376

只列举部分


netstat -lnp         查看监听端口

[root@arslinux-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      7038/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      7174/master
tcp6       0      0 :::22                   :::*                    LISTEN      7038/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      7174/master
udp        0      0 127.0.0.1:323           0.0.0.0:*                           6395/chronyd
udp6       0      0 ::1:323                 :::*                                6395/chronyd
raw6       0      0 :::58                   :::*                    7           6558/NetworkManager
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name     Path
unix  2      [ ACC ]     STREAM     LISTENING     39411    7174/master          public/showq
unix  2      [ ACC ]     STREAM     LISTENING     39381    7174/master          private/rewrite
unix  2      [ ACC ]     STREAM     LISTENING     35359    6376/VGAuthService   /var/run/vmware/guestServicePipe
unix  2      [ ACC ]     STREAM     LISTENING     39378    7174/master          private/tlsmgr
unix  2      [ ACC ]     STREAM     LISTENING     21378    1/systemd            /run/lvm/lvmetad.socket
unix  2      [ ACC ]     STREAM     LISTENING     33953    1/systemd            /run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     39384    7174/master          private/bounce
unix  2      [ ACC ]     STREAM     LISTENING     21183    1/systemd            /run/systemd/private
unix  2      [ ACC ]     STREAM     LISTENING     39387    7174/master          private/defer
unix  2      [ ACC ]     STREAM     LISTENING     39390    7174/master          private/trace
unix  2      [ ACC ]     STREAM     LISTENING     39393    7174/master          private/verify
unix  2      [ ACC ]     STREAM     LISTENING     39399    7174/master          private/proxymap
unix  2      [ ACC ]     STREAM     LISTENING     39402    7174/master          private/proxywrite
unix  2      [ ACC ]     STREAM     LISTENING     39405    7174/master          private/smtp
unix  2      [ ACC ]     STREAM     LISTENING     39408    7174/master          private/relay
unix  2      [ ACC ]     STREAM     LISTENING     39414    7174/master          private/error
unix  2      [ ACC ]     STREAM     LISTENING     39417    7174/master          private/retry
unix  2      [ ACC ]     STREAM     LISTENING     39420    7174/master          private/discard
unix  2      [ ACC ]     STREAM     LISTENING     39367    7174/master          public/pickup
unix  2      [ ACC ]     STREAM     LISTENING     39423    7174/master          private/local
unix  2      [ ACC ]     STREAM     LISTENING     39371    7174/master          public/cleanup
unix  2      [ ACC ]     STREAM     LISTENING     39426    7174/master          private/virtual
unix  2      [ ACC ]     STREAM     LISTENING     39374    7174/master          public/qmgr
unix  2      [ ACC ]     STREAM     LISTENING     39429    7174/master          private/lmtp
unix  2      [ ACC ]     STREAM     LISTENING     39432    7174/master          private/anvil
unix  2      [ ACC ]     STREAM     LISTENING     39435    7174/master          private/scache
unix  2      [ ACC ]     STREAM     LISTENING     8942     1/systemd            /run/systemd/journal/stdout
unix  2      [ ACC ]     STREAM     LISTENING     21232    1/systemd            /run/lvm/lvmpolld.socket
unix  2      [ ACC ]     SEQPACKET  LISTENING     21235    1/systemd            /run/udev/control
unix  2      [ ACC ]     STREAM     LISTENING     39396    7174/master          public/flush



netstat -an         查看所有连接状态

[root@arslinux-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.194.130:22      192.168.194.1:4846      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     39411    public/showq
unix  2      [ ACC ]     STREAM     LISTENING     39381    private/rewrite
unix  2      [ ACC ]     STREAM     LISTENING     35359    /var/run/vmware/guestServicePipe
unix  2      [ ACC ]     STREAM     LISTENING     39378    private/tlsmgr
unix  2      [ ]         DGRAM                    34934    /var/run/chrony/chronyd.sock
unix  2      [ ]         DGRAM                    21364    /run/systemd/shutdownd
unix  2      [ ACC ]     STREAM     LISTENING     21378    /run/lvm/lvmetad.socket
unix  2      [ ACC ]     STREAM     LISTENING     33953    /run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     39384    private/bounce
unix  2      [ ACC ]     STREAM     LISTENING     21183    /run/systemd/private
unix  2      [ ACC ]     STREAM     LISTENING     39387    private/defer
unix  2      [ ACC ]     STREAM     LISTENING     39390    private/trace
unix  2      [ ACC ]     STREAM     LISTENING     39393    private/verify
unix  2      [ ACC ]     STREAM     LISTENING     39399    private/proxymap
unix  2      [ ACC ]     STREAM     LISTENING     39402    private/proxywrite

只列举部分


netstat -lntp             只查看 tcp 的连接状态

[root@arslinux-01 ~]# 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      7038/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      7174/master
tcp6       0      0 :::22                   :::*                    LISTEN      7038/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      7174/master



netstat -lntup             查看 tcp 和 udp 的连接状态

[root@arslinux-01 ~]# netstat -lntup
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      7038/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      7174/master
tcp6       0      0 :::22                   :::*                    LISTEN      7038/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      7174/master
udp        0      0 127.0.0.1:323           0.0.0.0:*                           6395/chronyd
udp6       0      0 ::1:323                 :::*                                6395/chronyd



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

查看所有状态的数字

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

★关注 ESTABLISHED,数字越大,越忙


ss -an    显示连接状态(与 netstat 类似)

[root@arslinux-01 ~]# ss -an


ss -an |grep -i listen     查看 listen 状态的连接(-i 忽略大小写)

[root@arslinux-01 ~]# ss -an | grep -i listen
u_str  LISTEN     0      100    public/showq 39411                 * 0
u_str  LISTEN     0      100    private/rewrite 39381                 * 0
u_str  LISTEN     0      32     /var/run/vmware/guestServicePipe 35359                 * 0
u_str  LISTEN     0      100    private/tlsmgr 39378                 * 0
u_str  LISTEN     0      128    /run/lvm/lvmetad.socket 21378                 * 0
u_str  LISTEN     0      128    /run/dbus/system_bus_socket 33953                 * 0
u_str  LISTEN     0      100    private/bounce 39384                 * 0
u_str  LISTEN     0      128    /run/systemd/private 21183                 * 0
u_str  LISTEN     0      100    private/defer 39387                 * 0
u_str  LISTEN     0      100    private/trace 39390                 * 0
u_str  LISTEN     0      100    private/verify 39393                 * 0
u_str  LISTEN     0      100    private/proxymap 39399                 * 0
u_str  LISTEN     0      100    private/proxywrite 39402                 * 0
u_str  LISTEN     0      100    private/smtp 39405                 * 0
u_str  LISTEN     0      100    private/relay 39408                 * 0
u_str  LISTEN     0      100    private/error 39414                 * 0
u_str  LISTEN     0      100    private/retry 39417                 * 0
u_str  LISTEN     0      100    private/discard 39420                 * 0
u_str  LISTEN     0      100    public/pickup 39367                 * 0
u_str  LISTEN     0      100    private/local 39423                 * 0
u_str  LISTEN     0      100    public/cleanup 39371                 * 0
u_str  LISTEN     0      100    private/virtual 39426                 * 0
u_str  LISTEN     0      100    public/qmgr 39374                 * 0
u_str  LISTEN     0      100    private/lmtp 39429                 * 0
u_str  LISTEN     0      100    private/anvil 39432                 * 0
u_str  LISTEN     0      100    private/scache 39435                 * 0
u_str  LISTEN     0      128    /run/systemd/journal/stdout 8942                  * 0
u_str  LISTEN     0      128    /run/lvm/lvmpolld.socket 21232                 * 0
u_seq  LISTEN     0      128    /run/udev/control 21235                 * 0
u_str  LISTEN     0      100    public/flush 39396                 * 0
tcp    LISTEN     0      128       *:22                    *:*
tcp    LISTEN     0      100    127.0.0.1:25                    *:*
tcp    LISTEN     0      128      :::22                   :::*
tcp    LISTEN     0      100     ::1:25                   :::*

缺点:不会显示进程名称


10.10 linux下抓包

tcpdump 抓包工具

[root@arslinux-01 ~]# tcpdump
-bash: tcpdump: 未找到命令

tcpdump 安装:

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


tcpdump -nn 抓包

[root@arslinux-01 ~]# tcpdump -nn
tcpdump: packet printing is not supported for link type NFLOG: use -w

因为网卡名称 ens33 , tcpdump 默认识别 eth0,因此需要指定才能使用


tcpdump -nn -i 网卡名 指定网卡名抓包

[root@arslinux-01 ~]# tcpdump -nn -i ens33
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
21:14:49.377177 IP 192.168.194.1.4846 > 192.168.194.130.22: Flags [P.], seq 1:53, ack 105604, win 2049, length 52
21:14:49.377216 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 106356:106520, ack 53, win 304, length 164
^C
687 packets captured
687 packets received by filter
0 packets dropped by kernel

-nn的第一个n表示IP用数字显示出来,如果不加n,则会显示主机名

-nn用数字显示,比较直观

时间,IP,源IP.端口>方向IP.端口:数据包信息


tcpdump -nn port 端口号指定端口号

[root@arslinux-01 ~]# tcpdump -nn -i eth0 port 22


tcpdump -nn not port 端口号 and host IP地址 同时指定不需要的端口号和只要看的host IP

[root@arslinux-01 ~]# tcpdump -nn -i ens33 not port 22
[root@arslinux-01 ~]# tcpdump -nn -i ens33 not port 22 and host 192.168.194.1


tcpdump -nn -c 个数 指定抓包个数

[root@arslinux-01 ~]# tcpdump -nn -c 20 -i ens33
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
21:32:20.322745 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 201793328:201793524, ack 1738012548, win 304, length 196
21:32:20.322908 IP 192.168.194.1.4846 > 192.168.194.130.22: Flags [.], ack 196, win 2052, length 0
21:32:20.323167 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 196:472, ack 1, win 304, length 276
21:32:20.323432 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 472:636, ack 1, win 304, length 164
21:32:20.323540 IP 192.168.194.1.4846 > 192.168.194.130.22: Flags [.], ack 636, win 2050, length 0
21:32:20.323689 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 636:896, ack 1, win 304, length 260
21:32:20.323842 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 896:1060, ack 1, win 304, length 164
21:32:20.323921 IP 192.168.194.1.4846 > 192.168.194.130.22: Flags [.], ack 1060, win 2048, length 0
21:32:20.324016 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 1060:1320, ack 1, win 304, length 260
21:32:20.324167 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 1320:1484, ack 1, win 304, length 164
21:32:20.324236 IP 192.168.194.1.4846 > 192.168.194.130.22: Flags [.], ack 1484, win 2053, length 0
21:32:20.324321 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 1484:1744, ack 1, win 304, length 260
21:32:20.324432 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 1744:1908, ack 1, win 304, length 164
21:32:20.324493 IP 192.168.194.1.4846 > 192.168.194.130.22: Flags [.], ack 1908, win 2051, length 0
21:32:20.324604 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 1908:2168, ack 1, win 304, length 260
21:32:20.324721 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 2168:2332, ack 1, win 304, length 164
21:32:20.324787 IP 192.168.194.1.4846 > 192.168.194.130.22: Flags [.], ack 2332, win 2049, length 0
21:32:20.324873 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 2332:2592, ack 1, win 304, length 260
21:32:20.324985 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 2592:2756, ack 1, win 304, length 164
21:32:20.325048 IP 192.168.194.1.4846 > 192.168.194.130.22: Flags [.], ack 2756, win 2048, length 0
20 packets captured
20 packets received by filter
0 packets dropped by kernel


tcpdump -nn -c 个数 -w 文件绝对路径 指定个数抓包保存到指定文件中

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

★1.cap 是无法 cat 的


tcpdump -r 目标文件 查看 .cap 文件信息

[root@arslinux-01 ~]# tcpdump -r /tmp/1.cap
reading from file /tmp/1.cap, link-type EN10MB (Ethernet)
21:35:18.927071 IP arslinux-01.ssh > 192.168.194.1.contamac_icm: Flags [P.], seq 201800192:201800324, ack 1738015824, win 304, length 132
21:35:18.927369 IP 192.168.194.1.contamac_icm > arslinux-01.ssh: Flags [.], ack 132, win 2049, length 0
21:35:26.000391 IP 192.168.194.1.5758 > arslinux-01.ssh: Flags [P.], seq 3165712486:3165712538, ack 2941816606, win 251, length 52
21:35:26.000710 IP arslinux-01.ssh > 192.168.194.1.5758: Flags [P.], seq 1:53, ack 52, win 279, length 52

不全部列举


tshark 工具

tshark 安装:

[root@arslinux-01 ~]# yum install -y wireshark


查看指定端口 web 访问情况

[root@arslinux-01 ~]# 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"
tshark: -R without -2 is deprecated. For single-pass filtering use -Y.
Running as user "root" and group "root". This could be dangerous.
Capturing on 'nflog'
^C0 packets captured

类似于访问日志,可以查看什么IP访问什么链接


10.11 Linux网络相关

ifconfig 查看网卡 IP(ip addr 也可以)

ifconfig 安装:
[root@arslinux-01 ~]# yum install -y net-tools
[root@arslinux-01 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.194.130  netmask 255.255.255.0  broadcast 192.168.194.255
    inet6 fe80::c905:5e78:b916:41da  prefixlen 64  scopeid 0x20<link>
    ether 00:0c:29:24:ea:f2  txqueuelen 1000  (Ethernet)
    RX packets 111502  bytes 32260235 (30.7 MiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 246917  bytes 63202425 (60.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 32  bytes 2592 (2.5 KiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 32  bytes 2592 (2.5 KiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0



ifconfig -a 查看所有网卡信息(包括没有启动的网卡)

[root@arslinux-01 ~]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 192.168.194.130  netmask 255.255.255.0  broadcast 192.168.194.255
inet6 fe80::c905:5e78:b916:41da  prefixlen 64  scopeid 0x20<link>
ether 00:0c:29:24:ea:f2  txqueuelen 1000  (Ethernet)
RX packets 111521  bytes 32261789 (30.7 MiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 246928  bytes 63204505 (60.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 32  bytes 2592 (2.5 KiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 32  bytes 2592 (2.5 KiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


ifup 网卡名 启动网卡

ifdown 网卡名 关闭网卡

[root@arslinux-01 ~]# ifdown ens33 && ifup ens33
成功断开设备 'ens33'。
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)


设置虚拟网卡

思路:拷贝一份网卡配置文件,根据需求更改参数

[root@arslinux-01 ~]# cd /etc/sysconfig/network-scripts/
[root@arslinux-01 network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:0
[root@arslinux-01 network-scripts]# vim !$
vim ifcfg-ens33\:0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.194.132
NETMASK=255.255.255.0
:wq
[root@arslinux-01 network-scripts]# ifdown ens33 && ifup ens33
成功断开设备 'ens33'。
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)
[root@arslinux-01 network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.194.130  netmask 255.255.255.0  broadcast 192.168.194.255
    inet6 fe80::c905:5e78:b916:41da  prefixlen 64  scopeid 0x20<link>
    ether 00:0c:29:24:ea:f2  txqueuelen 1000  (Ethernet)
    RX packets 112363  bytes 32333556 (30.8 MiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 247469  bytes 63281547 (60.3 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.194.132  netmask 255.255.255.0  broadcast 192.168.194.255
    ether 00:0c:29:24:ea:f2  txqueuelen 1000  (Ethernet)
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 32  bytes 2592 (2.5 KiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 32  bytes 2592 (2.5 KiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

已经多了一个虚拟网卡


mii-tool 网卡名

[root@arslinux-01 network-scripts]# mii-tool ens33
ens33: negotiated 1000baseT-FD flow-control, link ok            ## link ok 为连接


ethtool 网卡名

[root@arslinux-01 network-scripts]# ethtool ens33
Settings for ens33:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full
                100baseT/Half 100baseT/Full
                1000baseT/Full
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  10baseT/Half 10baseT/Full
                100baseT/Half 100baseT/Full
                1000baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: off (auto)
    Supports Wake-on: d
    Wake-on: d
    Current message level: 0x00000007 (7)
                drv probe link
    Link detected: yes            ## yes 为连接,no 为未连接


hostname 文件位置:/etc/hostname

[root@arslinux-01 ~]# cat /etc/hostname
arslinux-01


修改hostname名称

[root@arslinux-01 ~]# hostnamectl set-hostname alexis
[root@arslinux-01 ~]# hostname
alexis
[root@arslinux-01 ~]# cat /etc/hostname
alexis


DNS配置文件:/etc/resolv.conf

[root@arslinux-01 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 119.29.29.29

参数由网卡配置文件所定义,哪怕更改,再重启网卡,依然会被恢复为网卡内的参数


/etc/hosts

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

前面为IP,后面为域名

一行可以有多个域名(空格分隔)

多个相同的域名不同的IP,默认使用最后一个IP

可以设置解析

[root@arslinux-01 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.194.150 www.baidu.com
[root@arslinux-01 ~]# ping www.baidu.com
PING www.baidu.com (192.168.194.150) 56(84) bytes of data.
64 bytes from www.baidu.com (192.168.194.150): icmp_seq=1 ttl=64 time=0.056 ms
64 bytes from www.baidu.com (192.168.194.150): icmp_seq=2 ttl=64 time=0.065 ms
64 bytes from www.baidu.com (192.168.194.150): icmp_seq=3 ttl=64 time=0.054 ms
^C
--- www.baidu.com ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5000ms
rtt min/avg/max/mdev = 0.053/0.062/0.076/0.011 ms

ping 百度,已经跳解析到192,.168.194.150

★这个仅在本机生效

如果指定不同的 IP 对应同一个网址,那么以最后一个生效


扩展

tcp三次握手四次挥手(重点) http://www.doc88.com/p-9913773324388.html

tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.html


修改网卡:

https://blog.csdn.net/jyusun/article/details/71513086

https://blog.csdn.net/u010039418/article/details/79260553



课堂笔记


三次握手小例子:

在红军时代,A连和B连分在左右翼,约定在几时几分一同发起打击。这个几时几分的信息就需要人工通过通讯员来走路传递。所以A连指挥官派出通讯员。

这是第一次。

假设通讯员到达了B连,并且告知了B连指挥官几时几分,B连指挥官一定会让通讯员再回去通知A连指挥官,可怜的通讯员只能冒着危险返回A连,因为A连指挥官看不到通讯员返回的话,不知道几时几分这个信息到底传达到了B连没有。

这是第二次。

现在B连指挥官开始担心通讯员是否回到了A连,如果没回到,B连指挥官会设身处地的想一想A连指挥官见不到返回的通讯员,肯定是不敢打的,所以B连指挥官最盼望的是再次看到通讯员出现在B连,所以A连指挥官会让通讯员再回B连一次。

这是第三次。

这就是三次握手

【0413】日常运维——常用命令_sar_11

由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此。

第一次挥手:

Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。

第二次挥手:

Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。

第三次挥手:

Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。

【0413】日常运维——常用命令_vmstat_12

【0413】日常运维——常用命令_vmstat_13

【0413】日常运维——常用命令_top_14

  • CLOSED:初始状态,表示TCP连接是“关闭着的”或“未打开的”。

  • LISTEN :表示服务器端的某个SOCKET处于监听状态,可以接受客户端的连接。

  • SYN_RCVD :表示接收到了SYN报文。在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂,基本上用netstat很难看到这种状态,除非故意写一个监测程序,将三次TCP握手过程中最后一个ACK报文不予发送。当TCP连接处于此状态时,再收到客户端的ACK报文,它就会进入到ESTABLISHED 状态。

  • SYN_SENT :这个状态与SYN_RCVD 状态相呼应,当客户端SOCKET执行connect()进行连接时,它首先发送SYN报文,然后随即进入到SYN_SENT 状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT 状态表示客户端已发送SYN报文。

  • ESTABLISHED :表示TCP连接已经成功建立。

  • FIN_WAIT_1 :这个状态得好好解释一下,其实FIN_WAIT_1 和FIN_WAIT_2 两种状态的真正含义都是表示等待对方的FIN报文。而这两种状态的区别是:FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN报文,此时该SOCKET进入到FIN_WAIT_1 状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2 状态。当然在实际的正常情况下,无论对方处于任何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1 状态一般是比较难见到的,而FIN_WAIT_2 状态有时仍可以用netstat看到。

  • FIN_WAIT_2 :上面已经解释了这种状态的由来,实际上FIN_WAIT_2状态下的SOCKET表示半连接,即有一方调用close()主动要求关闭连接。注意:FIN_WAIT_2 是没有超时的(不像TIME_WAIT 状态),这种状态下如果对方不关闭(不配合完成4次挥手过程),那这个 FIN_WAIT_2 状态将一直保持到系统重启,越来越多的FIN_WAIT_2 状态会导致内核crash。

  • TIME_WAIT :表示收到了对方的FIN报文,并发送出了ACK报文。 TIME_WAIT状态下的TCP连接会等待2*MSL(Max Segment Lifetime,最大分段生存期,指一个TCP报文在Internet上的最长生存时间。每个具体的TCP协议实现都必须选择一个确定的MSL值,RFC 1122建议是2分钟,但BSD传统实现采用了30秒,Linux可以cat /proc/sys/net/ipv4/tcp_fin_timeout看到本机的这个值),然后即可回到CLOSED 可用状态了。如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。

  • CLOSING :这种状态在实际情况中应该很少见,属于一种比较罕见的例外状态。正常情况下,当一方发送FIN报文后,按理来说是应该先收到(或同时收到)对方的ACK报文,再收到对方的FIN报文。但是CLOSING 状态表示一方发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。什么情况下会出现此种情况呢?那就是当双方几乎在同时close()一个SOCKET的话,就出现了双方同时发送FIN报文的情况,这是就会出现CLOSING 状态,表示双方都正在关闭SOCKET连接。

  • CLOSE_WAIT :表示正在等待关闭。怎么理解呢?当对方close()一个SOCKET后发送FIN报文给自己,你的系统毫无疑问地将会回应一个ACK报文给对方,此时TCP连接则进入到CLOSE_WAIT状态。接下来呢,你需要检查自己是否还有数据要发送给对方,如果没有的话,那你也就可以close()这个SOCKET并发送FIN报文给对方,即关闭自己到对方这个方向的连接。有数据的话则看程序的策略,继续发送或丢弃。简单地说,当你处于CLOSE_WAIT 状态下,需要完成的事情是等待你去关闭连接。

  • LAST_ACK :当被动关闭的一方在发送FIN报文后,等待对方的ACK报文的时候,就处于LAST_ACK 状态。当收到对方的ACK报文后,也就可以进入到CLOSED 可用状态了。


ip命令使用

1. 设置和删除IP

ip addr add 192.168.10.10/24 dev eth0

ip addr show eth0

ip addr del 192.168.10.10/24 dev eth0


2. 路由相关设置

ip route show

ip route add default via 192.168.10.1

ip route add 192.168.5.0/24 dev eth0

ip route del 192.168.10.1


另外用route命令来管理路由:

(a)、网络路由

route add -net 192.168.1.0/24 gw 172.16.1.106

(b)、主机路由

route add -host 192.168.1.110 gw 172.16.1.106

(c)、默认路由

route add default gw 172.16.1.106

route add -net 0.0.0.0 gw 172.16.1.106

(d)、删除路由

route del -host 192.168.1.110

route del -net 192.168.1.0/24


3. 显示网络统计数据

ip -s link

ip -s -s link ls eth0


4. 停止开启网卡

ip link set eth0 down

ip linke set eth0 up


更改网卡名字

ip link set ens37 name eth1

永久保存:https://blog.csdn.net/jyusun/article/details/71513086