Linux日常运维管理技巧–1

  • Linux日常运维管理技巧–1

    • 1:使用w查看系统负载.

      • w命令所显示字段的含义:
      • load average详解:
      • w命令常用选项
      • w相关的命令:uptime
    • 2:vmstat命令
      • 用法:
      • 常用选项:
      • 字段说明:
    • 3:top命令
      • 使用方法
      • 常用选项:
      • 字段解释:
      • top交互命令:
    • 4 sar命令
    • 5 nload命令
    • 6 监控io性能
      • iostat
      • iotop
    • 7 free命令
    • 8 ps命令
    • 9 查看网络状态
      • netstat命令
    • 10 linux下抓包
      • tcpdump
      • tshark
    • 11 Linux网络相关
      • ifconfig查看网卡ip
      • 关闭、启动网卡
      • 设定虚拟网卡
      • 查看网卡是否连接
      • 更改主机名
      • DNS配置
      • hosts文件
    • 扩展

1:使用w查看系统负载.

w命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令,还有系统负载等信息。

执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。

单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。

##一般用法:直接执行w命令
[root@long01 ~]# w19:38:50 up  6:30,  2 users,  load average: 0.00, 0.01, 0.02
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      19:38   10.00s  0.03s  0.03s -bash
root     pts/0    10.1.1.169       19:24    2.00s  0.01s  0.00s w

w命令所显示字段的含义:

字段
19:24:38 表示当前系统时间
up 6:16 表示系统以及运行了多少时间
1 user 表示有多少用户登录到这个系
load average 分别表示系统最近一分钟、五分钟、十五分钟分钟的负载
USER 这一列表示在线用户的用户名。
TTY 在线用户所在的终端,远程终端是pts/0 pts/1等等,本地登录的用户显示为tty1 tty2等等。
FROM 表示用户登录的IP,如果是本地登录则不显示任何信息,或者显示的是主机名
LOGIN@ 用户登录的时间
IDLE 用户空闲时间。这是个计时器,一旦用户执行任何操作,改计时器就会被重置
JCPU 和终端连接的所有进程占用时间。包括当前正在运行的后台作业占用时间
PCPU 当前进程所占用时间
WHAT 当前正在运行进程的命令行

load average详解:

##第一个数字表示最近1分钟系统的负载
##第二个数字表示最近5分钟的负载
##第三个数字表示最近15分钟的负载
##实际生产环境的负载情况应该不高于服务器的逻辑CPU数量,
##最佳负载应该等于逻辑cpu数量,没有空闲,也没有压力。##查看服务器的逻辑CPU数量,实际数量是processor最大的数字加1
[root@long01 ~]# cat /proc/cpuinfo | grep "^processor" | sort -drt " " -k3
processor   : 1
processor   : 0

w命令常用选项

h选项:不打印头信息,也就是第一行,只显示所有在线用户的信息

[root@long01 ~]# w -h
root     tty1                      19:38   23:44   0.12s  0.12s -bash
root     pts/0    10.1.1.169       19:24    0.00s  0.04s  0.00s w -h

s选项:短格式显示简短的信息:

[root@long01 ~]# w -s20:16:40 up  7:08,  2 users,  load average: 0.00, 0.01, 0.02
USER     TTY      FROM              IDLE WHAT
root     tty1                      25:12  -bash
root     pts/0    10.1.1.169        0.00s w -s

w相关的命令:uptime

uptime命令的结果就是w命令的第一行

[root@long01 ~]# uptime20:20:41 up  7:12,  2 users,  load average: 0.00, 0.01, 0.02

2:vmstat命令

vmstat命令的含义为显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。

用法:

##直接使用:显示一次信息
[root@long01 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st1  0      0 1823464   2076 114716    0    0     5     1   26   24  0  0 100  0  0##持续显示直到使用Ctrl+Z暂停或者Ctrl+C终止: vmstat 1
[root@long01 ~]# vmstat 1      #1代表每1秒显示一次,可以任意设置
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st1  0      0 1823464   2076 114716    0    0     5     1   26   24  0  0 100  0  00  0      0 1823464   2076 114716    0    0     0     0   70   56  0  0 100  0  00  0      0 1823464   2076 114716    0    0     0     0   48   41  0  0 100  0  00  0      0 1823448   2076 114716    0    0     0     1   51   50  0  0 100  0  0
^C##持续显示指定次数:vmstat 1 5 ;表示每1秒显示1次,显示5次后自动终止。
[root@long01 ~]# 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 st2  0      0 1823588   2076 114716    0    0     5     1   26   24  0  0 100  0  00  0      0 1823572   2076 114716    0    0     0     0   72   56  0  0 100  0  00  0      0 1823572   2076 114716    0    0     0     0   57   53  0  0 100  0  00  0      0 1823572   2076 114716    0    0     0     0   61   54  0  0 100  0  00  0      0 1823572   2076 114716    0    0     0     0   53   45  0  0 100  0  0
[root@long01 ~]# 

常用选项:

f选项:显示启动后创建的进程总数;
[root@long01 ~]# vmstat -f1202 forksS选项:输出信息的单位,可以设定 k或者K  显示的是多少kb,m或者M显示的是多少M。
[root@long01 ~]# vmstat 1 5 -S  M
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st1  0      0   1780      2    112    0    0     4     0   26   24  0  0 100  0  00  0      0   1780      2    112    0    0     0     0  108   96  0  0 100  0  00  0      0   1780      2    112    0    0     0     0   87   82  0  0 100  0  00  0      0   1780      2    112    0    0     0     4   88   81  0  0 100  0  00  0      0   1780      2    112    0    0     0     1   91   89  0  0 100  0  0
##上面free:1700M ;buff:2M ;cache:112M

字段说明:

Procs(进程)r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1)b: 等待IO的进程数量。Memory(内存)swpd: 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。free: 空闲物理内存大小。buff: 用作缓冲的内存大小。cache: 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。Swap(交换空间)si: 每秒从交换区写到内存的大小,由磁盘调入内存。so: 每秒写入交换区的内存大小,由内存调入磁盘。
(注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。)IObi: 每秒读取的块数bo: 每秒写入的块数
(注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。)system(系统)in: 每秒中断数,包括时钟中断。cs: 每秒上下文切换数。
(注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。)CPU(以百分比表示)us: 用户进程执行时间百分比(user time)(注:us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。)sy: 内核系统进程执行时间百分比(system time)(注:sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。)wa: IO等待时间百分比(注:wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。)id: 空闲时间百分比

3:top命令

top命令类似于Windows的任务管理器:可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。

使用方法

[root@long01 ~]# top
top - 23:44:18 up  3:04,  1 user,  load average: 0.00, 0.01, 0.02
Tasks:  92 total,   1 running,  91 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2031912 total,  1822860 free,    92024 used,   117028 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1789820 avail Mem PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND1 root      20   0  125092   3660   2520 S   0.0  0.2   0:00.49 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.01 ksoftirqd/0 

常用选项:

d选项:可以调整top信息的刷新时间,默认为3秒

[root@long01 ~]# top -d 1  #调整top信息刷新时间为1秒。如此top显示的信息每1秒都会刷新一次。

u选项:查看某个用户的进程

[root@long01 ~]# top -u user2
top - 23:56:04 up  3:16,  2 users,  load average: 0.00, 0.01, 0.02
Tasks:  96 total,   1 running,  95 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2031912 total,  1819324 free,    95252 used,   117336 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1786392 avail Mem PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                       1248 user2     20   0  150868   2304    976 S   0.0  0.1   0:00.00 sshd                         1249 user2     20   0  115952   2420   1676 S   0.0  0.1   0:00.01 bash

c选项:显示完整的进程命令

[root@long01 ~]# top -c
top - 12:02:53 up 19:26,  1 user,  load average: 0.00, 0.01, 0.04
Tasks:  94 total,   1 running,  93 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2031912 total,  1612116 free,    96668 used,   323128 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1752328 avail Mem PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND1 root      20   0   43272   3532   2328 S   0.0  0.2   0:00.70 /usr/lib/systemd/systemd --system --deserialize 13  

b选项:以批处理的模式操作, 显示全部的进程信息。

n选项:可以设置循环显示次数,刷新指定的次数后停止top命令

[root@long01 ~]# top -bn 1     #-bn 1的组合常用于脚本中,可以调取一次系统运行信息。用于分析数据,
top - 12:08:05 up 19:31,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  93 total,   1 running,  92 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  3.1 sy,  0.0 ni, 96.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2031912 total,  1612312 free,    96316 used,   323284 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1752656 avail Mem PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND1 root      20   0   43272   3532   2328 S   0.0  0.2   0:00.70 systemd2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd3 root      20   0       0      0      0 S   0.0  0.0   0:00.02 ksoftirqd/05 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H

字段解释:

第一行:与w命令的第一行相同,显示的时系统当前的时间,已运行的时间,系统负载信息。
第二行:依次是:总任务数量,处于运行状态的任务数量,休眠状态的任务数量,停止状态的任务数量,僵尸进程数量
第三行:CPU信息,与vmstat显示的信息类似。最后的st意思是当 hypervisor 服务另一个虚拟处理器的时候,虚拟 CPU 等待实际 CPU 的时间的百分比
第四行:依次是:总物理内存,空闲的内存,已使用的内存,缓冲区和缓存使用的内存。
第五行:依次是:交换分区总大小,空闲多少,已使用多少,有效的内存。第七行:表示下面的进程信息,依次是:PID:进程IDUSER:开启进程的用户,PR:进程的优先级NI:NICE值,为负值时表示高优先级,正值表示低优先级VIRT:进程使用的虚拟内存总量,单位为KBRES:进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATASHR:共享内存大小,单位kbS:进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
    %CPU:上次更新到现在的CPU时间占用百分比
    %MEM:进程使用的物理内存百分比TIME+:进程使用的CPU时间总计,单位1/100秒COMMAND:进程名称(命令名/命令行)

top交互命令:

h:显示帮助画面,给出一些简短的命令总结说明;
k:终止一个进程;  k pid
i:忽略闲置和僵死进程,这是一个开关式命令;
q:退出程序;
r:重新安排一个进程的优先级别;
S:切换到累计模式;
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
f或者F:从当前显示中添加或者删除项目;
o或者O:改变显示项目的顺序;
l:切换显示平均负载和启动时间信息;
m:切换显示内存信息;
t:切换显示进程和CPU状态信息;
c:切换显示命令名称和完整命令行;
M:根据驻留内存大小进行排序;
P:根据CPU使用百分比大小进行排序;
T:根据时间/累计时间进行排序;
w:将当前设置写入~/.toprc文件中。

4 sar命令

sar命令是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。

sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。

它的特点是可以连续对系统取样,获得大量的取样数据。

取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。

如果提示找不到该命令,可以执行下面的命令进行安装。

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

命令格式:sar (选项) (参数)

sar会每十分钟记录一次系统的状态,每天会以sa和sar加上每天的日期命名,保存两个文件:

一个是/var/log/sa/saxx:xx为当天的日期。还有一个是/var/log/sa/sarxx

这些文件默认会保留一个月

[root@www ~]# ls /var/log/sa
sa01  sa04  sa07  sa10  sa14  sa17  sa20  sa23  sa26  sa29  sar01  sar04  sar07  sar11  sar14  sar17  sar20  sar23  sar26  sar29
sa02  sa05  sa08  sa12  sa15  sa18  sa21  sa24  sa27  sa30  sar02  sar05  sar08  sar12  sar15  sar18  sar21  sar24  sar27  sar30
sa03  sa06  sa09  sa13  sa16  sa19  sa22  sa25  sa28  sa31  sar03  sar06  sar09  sar13  sar16  sar19  sar22  sar25  sar28  sar31

sa开头的文件是数据文件, 需要用sar -f 命令来读取,直接cat会乱码

[root@www ~]# sar  -f /var/log/sa/sa01     #如果不指定查看的文件,那么查看的就是当天的信息。
Linux 3.10.0-693.11.1.el7.x86_64 (www)  06/01/2018  _x86_64_    (1 CPU)12:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM     all      0.15      0.00      0.10      0.00      0.00     99.75
12:20:01 AM     all      0.15      0.00      0.10      0.00      0.00     99.75
(此处省略N行。。。)字段解释:
字段解释:
第一行显示的依次是,系统内核版本,主机名,日期,系统数据位 CPU数量
第二行为空,
第三行为字段头,表示这一列代表的数据是什么,
%user 用户空间的CPU使用
%nice 改变过优先级的进程的CPU使用率
%system 内核空间的CPU使用率
%iowait CPU等待IO的百分比
%steal 虚拟机的虚拟机CPU使用的CPU
%idle 空闲的CPU
在以上的显示当中,主要看%iowait和%idle,%iowait过高表示存在I/O瓶颈,即磁盘IO无法满足业务需求,如果%idle过低表示CPU使用率比较严重,需要结合内存使用等情况判断CPU是否瓶颈。 

sar开头的文件为普通文本文件,可以直接使用cat等命令查看。

[root@www ~]# head -6 /var/log/sa/sar01
Linux 3.10.0-693.11.1.el7.x86_64 (www)  2018-06-01  _x86_64_    (1 CPU)12:00:01 AM     CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest    %gnice     %idle
12:10:01 AM     all      0.15      0.00      0.10      0.00      0.00      0.00      0.00      0.00      0.00     99.75
12:10:01 AM       0      0.15      0.00      0.10      0.00      0.00      0.00      0.00      0.00      0.00     99.75
12:20:01 AM     all      0.15      0.00      0.10      0.00      0.00      0.00      0.00      0.00      0.00     99.75

sar -n DEV 查看网卡流量

[root@www ~]# sar -n DEV
Linux 3.10.0-693.11.1.el7.x86_64 (www)  06/10/2018  _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      eth0      0.11      0.11      0.01      0.02      0.00      0.00      0.00
12:10:01 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00字段解释:
第一行显示的依次是,系统内核版本,主机名,日期,系统数据位 CPU数量
第二行为空,
第三行为字段头,表示这一列代表的数据是什么,12:00:01 AM :记录信息的时间IFACE:网卡接口rxpck/s:接收的数据包数量。txpck/s:发送的数据包数量。rxkB/s:接收的数据大小。txkB/s:发送的数据大小。rxcmp/s:每秒钟接收的压缩数据包txcmp/s:每秒钟发送的压缩数据包rxmcst/s:每秒钟接收的多播数据包

sar -q 查看平均负载

[root@www ~]# sar -q | head -6
Linux 3.10.0-693.11.1.el7.x86_64 (www)  06/10/2018  _x86_64_    (1 CPU)12:00:01 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
12:10:01 AM         3       183      0.00      0.01      0.05         0
12:20:01 AM         2       183      0.00      0.01      0.05         0
12:30:01 AM         2       183      0.00      0.01      0.05         0字段解释:runq-sz  运行队列的长度(等待运行的进程数,每核的CP不能超过3个)plist-sz 进程列表中的进程(processes)和线程数(threads)的数量ldavg-1 最后1分钟的CPU平均负载,即将多核CPU过去一分钟的负载相加再除以核心数得出的平均值,5分钟和15分钟以此类推ldavg-5 最后5分钟的CPU平均负载ldavg-15 最后15分钟的CPU平均负载

sar -b 磁盘读写

[root@www ~]# sar -b | head -6
Linux 3.10.0-693.11.1.el7.x86_64 (www)  06/10/2018  _x86_64_    (1 CPU)12:00:01 AM       tps      rtps      wtps   bread/s   bwrtn/s
12:10:01 AM      0.38      0.09      0.29      3.51      2.94
12:20:01 AM      0.12      0.00      0.12      0.00      1.21
12:30:01 AM      0.14      0.00      0.14      0.00      1.43字段解释:tps  磁盘每秒钟的IO总数,等于iostat中的tpsrtps 每秒钟从磁盘读取的IO总数wtps 每秒钟从写入到磁盘的IO总数bread/s 每秒钟从磁盘读取的块总数bwrtn/s 每秒钟此写入到磁盘的块总数

sar -v 进程、inode、文件和锁表状态

[root@www ~]# sar -v | head -6
Linux 3.10.0-693.11.1.el7.x86_64 (www)  06/10/2018  _x86_64_    (1 CPU)12:00:01 AM dentunusd   file-nr  inode-nr    pty-nr
12:10:01 AM     26702      1376     32673         0
12:20:01 AM     26712      1376     32677         0
12:30:01 AM     26718      1376     32677         0字段解释:
dentunusd 在缓冲目录条目中没有使用的条目数量
file-nr 被系统使用的文件句柄数量
inode-nr 已经使用的索引数量
pty-nr 使用的pty数量

更多sar用法参考:https://www.cnblogs.com/howhy/p/6396437.html

5 nload命令

nload命令主要用途: 用来即时监看网路状态和各ip所使用的带宽

nload 默认分为上下两块:
上半部分是:Incoming也就是进入网卡的流量,
下半部分是:Outgoing,也就是从这块网卡出去的流量,每部分都有下面这几个部分,看起来还是蛮直观的。当前流量(Curr)平均流量(Avg)最小流量(Min)最大流量(Max),流量总和(Ttl)

nload默认没有安装:yum安装前需要安装epel扩展包,然后再安装nload

[root@www ~]# yum install -y epel-release
(安装过程省略。。)
[root@www ~]# yum install -y nload

nload默认监测的是eth0网卡

[root@www ~]# nload

如果你想监测其他网卡的流量,可以使用左右按键在所有接口间切换。*或者在命令后接上网卡名。*

[root@www ~]# nload ens33

其他详细用法参考:https://linux.cn/article-2871-1.html

6 监控io性能

iostat

iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,

之后运行iostat将显示自上次运行该命令以后的统计信息。

用户可以通过指定统计的次数和时间来获得所需的统计信息。

日常用法:iostat -d -k 2

参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;2表示,数据显示每隔2秒刷新一次。

[root@www ~]# iostat -d -k 2
Linux 3.10.0-693.11.1.el7.x86_64 (www)  06/10/2018  _x86_64_    (1 CPU)Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.25         0.57         2.69    1589753    7512964
###我的服务器只有一块vda磁盘。字段解释:
Device:磁盘设备名。
tps:该设备每秒的传输次数,"一次传输"意思是"一次I/O请求"。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。
kB_read/s:每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
kB_read:读取的总数据量;
kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。

iostat还有一个比较常用的选项-x,该选项将用于显示和io相关的扩展数据。

[root@www ~]# iostat -d -x -k 1 10 ###1和10代表的事每一秒刷新一次,刷新10次后停止。
Linux 3.10.0-693.11.1.el7.x86_64 (www)  06/10/2018  _x86_64_    (1 CPU)Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.10    0.03    0.22     0.57     2.69    25.59     0.00   14.54    4.26   15.97   0.40   0.01字段解释:
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了
(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);
wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。
rsec/s:每秒读取的扇区数;
wsec/:每秒写入的扇区数。
rKB/s:The number of read requests that were issued to the device per second;
wKB/s:The number of write requests that were issued to the device per second;
avgrq-sz 平均请求扇区的大小
avgqu-sz 是平均请求队列的长度。毫无疑问,队列长度越短越好。
await:每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。
svctm    表示平均每次设备I/O操作的服务时间(以毫秒为单位)。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,         系统上运行的应用程序将变慢。
%util: 在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度
。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

iostat更多详细用法参考:https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858810.html

iotop

有时我们希望知道到底哪个进程产生了IO,这个时候就需要iotop这个工具了。 它的输出和top命令类似,简单直观。

首次使用iotop工具需要先进行安装:

[root@long01 ~]# yum install -y iotop

用法:直接执行,-d选项指定信息刷新的时间,单位为秒。

[root@long01 ~]# iotop -d 20Total DISK READ :   0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:   0.00 B/s | Actual DISK WRITE:       2.90 K/sTID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND 25 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:1]1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd --switched-root --system --deserialize 212 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]1027 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % -bash这个命令主要关注的是“IO>“ 这一列,表示进程占用磁盘IO的百分比。

7 free命令

free 命令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。

用法:直接执行

[root@long01 ~]# freetotal        used        free      shared  buff/cache   available
Mem:        2031912      131408       81632        8820     1818872     1685252
Swap:       2097148           0     2097148字段解释:
Mem:这一行表示物理内存的信息
Swap:这一行表示交换区的信息。total列:表示物理内存总大小和交换分区的总大小。
used:已使用的内存或交换分区。
free:空闲的内存或者交换分区。
shared:共享的内存
buff/cache:缓存区和缓冲区的容量大小,buffer:缓冲区,CPU处理好的数据如果直接写入磁盘的话太慢了,需要先存放在内存中,这个过程就叫做缓冲。cache:由于CPU直接到磁盘中读取数据也非常慢,所以程序需要先将磁盘中部分数据加载到内存中再让CPU进行计算,这叫做缓存。
available:可使用的内存容量大小。total=used+free+buff/cache
available包含free和buffer/cache剩余部分

常用选项:

-b:以Byte为单位显示内存使用情况;
[root@long01 ~]# free -btotal        used        free      shared  buff/cache   available
Mem:     2080677888   134594560    82591744     9031680  1863491584  1725714432
Swap:    2147479552           0  2147479552-h:易读方式显示。
[root@long01 ~]# free -htotal        used        free      shared  buff/cache   available
Mem:           1.9G        128M         78M        8.6M        1.7G        1.6G
Swap:          2.0G          0B        2.0G-k:以KB为单位显示内存使用情况;
[root@long01 ~]# free -ktotal        used        free      shared  buff/cache   available
Mem:        2031912      131340       80756        8820     1819816     1685368
Swap:       2097148           0     2097148-m:以MB为单位显示内存使用情况;
[root@long01 ~]# free -mtotal        used        free      shared  buff/cache   available
Mem:           1984         128          78           8        1777        1645
Swap:          2047           0        2047-s<间隔秒数>:持续观察内存使用状况;
[root@long01 ~]# free -s 1total        used        free      shared  buff/cache   available
Mem:        2031912      131584       80500        8820     1819828     1685124
Swap:       2097148           0     2097148total        used        free      shared  buff/cache   available
Mem:        2031912      131584       80500        8820     1819828     1685124
Swap:       2097148           0     2097148

8 ps命令

ps命令用于报告当前系统的进程状态。可以搭配kell指令随时中断、删除不必要的程序。

用法:直接使用将目前属于您自己这次登入的 PID 与相关信息列示出来

[root@long01 ~]# ps -l ###-l选项显示更详细的信息
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0    992    988  0  80   0 - 28848 do_wai pts/0    00:00:00 bash
0 R     0   1020    992  0  80   0 - 37235 -      pts/0    00:00:00 ps
[root@long01 ~]# ps PID TTY          TIME CMD992 pts/0    00:00:00 bash1021 pts/0    00:00:00 ps字段解释:F 代表这个程序的旗标 (flag), 4 代表使用者为 superuser;S 代表这个程序的状态 (STAT);UID 代表执行者身份PID 进程的ID号!PPID 父进程的ID;C CPU使用的资源百分比PRI指进程的执行优先权(Priority的简写),其值越小越早被执行;NI 这个进程的nice值,其表示进程可被执行的优先级的修正数值。ADDR 这个是内核函数,指出该程序在内存的那个部分。如果是个执行 的程序,一般就是『 - 』SZ 使用掉的内存大小;WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作;TTY 登入者的终端机位置;TIME 使用掉的 CPU 时间。CMD 所下达的指令名称

列出目前所有的进程:

[root@long01 ~]# ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.3 193700  6820 ?        Ss   21:10   0:00 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root          2  0.0  0.0      0     0 ?        S    21:10   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    21:10   0:00 [ksoftirqd/0]
(省略n行。。。)字段解释:
USER:该进程属于那个使用者账号。
PID :该进程的进程ID号。
%CPU:该进程使用掉的 CPU 资源百分比;
%MEM:该进程所占用的物理内存百分比;
VSZ :该进程使用掉的虚拟内存量 (Kbytes)
RSS :该进程占用的固定的内存量 (Kbytes)
TTY :该进程是在那个终端机上面运作,若与终端机无关,则显示 ?。另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
STAT:该程序目前的状态,主要的状态有:D 不能中断的进程 R run状态的进程S sleep状态的进程T 暂停的进程Z 僵尸进程< 高优先级进程N 低优先级进程L 内存中被锁了内存分页s 主进程l 多线程进程+ 前台进程
START:该进程被触发启动的时间;
TIME :该进程实际使用 CPU 运作的时间。
COMMAND:该程序的实际指令。

9 查看网络状态

netstat命令

netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。

可用选项:

-a或--all:显示所有连线中的Socket;
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;
-c或--continuous:持续列出网络状态;
-C或--cache:显示路由器配置的快取信息;
-e或--extend:显示网络其他相关信息;
-F或--fib:显示FIB;
-g或--groups:显示多重广播功能群组组员名单;
-h或--help:在线帮助;
-i或--interfaces:显示网络界面信息表单;
-l或--listening:显示监控中的服务器的Socket;
-M或--masquerade:显示伪装的网络连线;
-n或--numeric:直接使用ip地址,而不通过域名服务器;
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称;
-o或--timers:显示计时器;
-p或--programs:显示正在使用Socket的程序识别码和程序名称;
-r或--route:显示Routing Table;
-s或--statistice:显示网络工作信息统计表;
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
-v或--verbose:显示指令执行过程;
-V或--version:显示版本信息;
-w或--raw:显示RAW传输协议的连线状况;
-x或--unix:此参数的效果和指定"-A unix"参数相同;
--ip或--inet:此参数的效果和指定"-A inet"参数相同。

常规用法:

### netstat -lnp 查看监听端口
[root@long01 ~]# 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      879/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      975/master
tcp6       0      0 :::22                   :::*                    LISTEN      879/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      975/master
udp        0      0 127.0.0.1:323           0.0.0.0:*                           554/chronyd
udp6       0      0 ::1:323                 :::*                                554/chronyd
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name     Path
unix  2      [ ACC ]     STREAM     LISTENING     1582     1/systemd            /run/systemd/journal/stdout
unix  2      [ ACC ]     STREAM     LISTENING     19383    975/master           private/tlsmgr
unix  2      [ ACC ]     STREAM     LISTENING     19386    975/master           private/rewrite
unix  2      [ ACC ]     STREAM     LISTENING     19389    975/master           private/bounce
unix  2      [ ACC ]     STREAM     LISTENING     19392    975/master           private/defer
(省略N行。。。)
从整体上看,netstat的输出结果可以分为两个部分:
一个是Active Internet connections,称为有源TCP连接,
其中"Recv-Q"和"Send-Q"指%0A的是接收队列和发送队列。
这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。

netstat -an 查看系统的网络连接状况

[root@long01 ~]# 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 10.1.1.25:22            10.1.1.169:51625        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                 :::*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ]         DGRAM                    1562     /run/systemd/notify
unix  2      [ ]         DGRAM                    1564     /run/systemd/cgroups-agent
unix  2      [ ]         DGRAM                    16672    /var/run/chrony/chronyd.sock
unix  2      [ ACC ]     STREAM     LISTENING     1582     /run/systemd/journal/stdout
(省略N行。。)##关于STATE列各个状态的一个简要说明:
LISTEN:侦听并等待对端的TCP连接请求
SYN-SENT:发送SYN连接请求后,等待对端回复SYN请求
SYN-RECEIVED:收到来自对端的SYN请求,并回复SYN请求后,等待对端响应SYN请求的ACK消息
ESTABLISHED:代表连接建立,双方在这个状态下进行TCP数据交互
FIN-WAIT-1:发送FIN关闭连接请求后,等待对方响应FIN的ACK消息或者对端的FIN关闭请求
FIN-WAIT-2:等待对方FIN关闭请求
CLOSE-WAIT:等待本地用户(进程)发送FIN关闭请求给对端
CLOSING:当双方同时发送FIN关闭请求时,会进入CLOSING状态,等待对端发送FIN报文的响应ACK消息
LAST-ACK:收到对端FIN请求后,回复ACK及FIN并等待对方回复FIN的响应ACK消息,此时进入此状态
TIME-WAIT:该状态是为了确保对端收到了FIN请求的ACK响应,默认会等待两倍MSL时长(MSL:Maximum Segment Lifetime,即报文最大生存时间,超过这个时间的报文会被丢弃)

netstat -lntp 只看出tcp的,不包含socket

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

ss和nestat异曲同工,只是显示的信息不如netstat详细。

[root@long01 ~]# ss -ta
State      Recv-Q Send-Q Local Address:Port                  Peer Address:Port
LISTEN     0      128                *:ssh                              *:*
LISTEN     0      100        127.0.0.1:smtp                             *:*
ESTAB      0      52         10.1.1.25:ssh                     10.1.1.169:51625
LISTEN     0      128               :::ssh                             :::*
LISTEN     0      100              ::1:smtp                            :::* [root@long01 ~]# ss -atn   ##-n选项可以将端口协议显示为端口号。
State      Recv-Q Send-Q   Local Address:Port                  Peer Address:Port
LISTEN     0      128                  *:22                               *:*
LISTEN     0      100          127.0.0.1:25                               *:*
ESTAB      0      52           10.1.1.25:22                      10.1.1.169:51625
LISTEN     0      128                 :::22                              :::*
LISTEN     0      100                ::1:25                              :::* 

小技巧: netstat -an | awk ‘/^tcp/ {++sta[$NF]} END {for(key in sta) print key,”\t”,sta[key]}’

这条命令可以统计出各个状态下的tcp链接的数量。

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

10 linux下抓包

tcpdump

tcpdump命令是一款抓包工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。

tcpdump工具需要自行安装:

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

格式:tcpdump 选项

可用选项:

-a:尝试将网络和广播地址转换成名称;
-c<数据包数量>:收到指定的数据包数量后,就停止进行倾倒操作;
-d:把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出;
-dd:把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出;
-ddd:把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出;
-e:在每列倾倒资料上显示连接层级的文件头;
-f:用数字显示网际网络地址;
-F<表达文件>:指定内含表达方式的文件;
-i<网络界面>:使用指定的网络截面送出数据包;
-l:使用标准输出列的缓冲区;
-n:不把主机的网络地址转换成名字;
-N:不列出域名;
-O:不将数据包编码最佳化;
-p:不让网络界面进入混杂模式;
-q :快速输出,仅列出少数的传输协议信息;
-r<数据包文件>:从指定的文件读取数据包数据;
-s<数据包大小>:设置每个数据包的大小;
-S:用绝对而非相对数值列出TCP关联数;
-t:在每列倾倒资料上不显示时间戳记;
-tt: 在每列倾倒资料上显示未经格式化的时间戳记;
-T<数据包类型>:强制将表达方式所指定的数据包转译成设置的数据包类型;
-v:详细显示指令执行过程;
-vv:更详细显示指令执行过程;
-x:用十六进制字码列出数据包资料;
-w<数据包文件>:把数据包数据写入指定的文件。

日常用法:

直接执行tcpdump将监视第一个网络接口上所有流过的数据包

tcpdump默认监控的是eth0端口,由于我这里的网卡名是ens33所以需要使用-i选项指定监听的网卡
[root@long01 ~]# tcpdump -nni ens33
22:16:36.031834 IP 10.1.1.25.22 > 10.1.1.169.51625: Flags [P.], seq 57044:57208, ack 1, win 274, length 164
22:16:36.077590 IP 10.1.1.169.51625 > 10.1.1.25.22: Flags [P.], seq 1:53, ack 57044, win 2053, length 52
(此处省略N行)。
^C
406 packets captured
406 packets received by filter
0 packets dropped by kernel一条信息表示的依次是:时间,IP 源IP.端口 > 目标IP.端口 数据包标签[],数据包类型、长度等信息。
##-nn选项的作用是IP的端口都以数字的形式显示。不使用-nn选项的话有些时候会显示协议名等信息。
##tcpdump默认会一直抓包,知道按Ctrl+C终止抓包。

监视指定端口的数据包

[root@long01 ~]# tcpdump -nni ens33 port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
23:01:31.055177 IP 10.1.1.169.61714 > 183.61.83.225.80: Flags [S], seq 2508788990, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
23:01:31.094872 IP 183.61.83.225.80 > 10.1.1.169.61714: Flags [S.], seq 3687868093, ack 2508788991, win 14600, options [mss 1420,nop,nop,sackOK,nop,wscale 9], length 0

监视端口不是22和ip不是10.1.1.1的数据包:

[root@long01 ~]# tcpdump -nn -i ens33 not port 22 and not  host 10.1.1.1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
23:05:51.871825 IP 10.1.1.169.61745 > 183.61.83.225.80: Flags [S], seq 2512730790, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
23:05:51.910597 IP 183.61.83.225.80 > 10.1.1.169.61745: Flags [S.], seq 2995415503, ack 2512730791, win 14600, options [mss 1420,nop,nop,sackOK,nop,wscale 9], length 0
23:05:51.910602 IP 10.1.1.169.61745 > 183.61.83.225.80: Flags [.], ack 1, win 260, length 0

抓取100个数据包然后将数据包保存到data.cab 文件中

[root@long01 ~]# tcpdump -nni ens33 -c 100 -w data.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#这样抓取到的数据包只能使用tcpdump -r选项来读取, 直接cat的话就是乱码。
[root@long01 ~]# tcpdump -r data.cap
reading from file data.cap, link-type EN10MB (Ethernet)
23:19:11.281776 IP long01.ssh > 10.1.1.169.61711: Flags [P.], seq 4277860660:4277860808, ack 3580160994, win 251, length 148
23:19:11.281872 IP 10.1.1.169.61711 > long01.ssh: Flags [.], ack 148, win 2050, length 0
23:19:13.883733 IP 10.1.1.169.51427 > 239.255.255.250.ssdp: UDP, length 137
(此处省略N行。。)

tshark

tshark是另外一个和tcpdump相似的工具:

tshark命令需要先安装wireshark包才能使用。
[root@www ~]# yum install -y wireshark案例:通过tshark抓取web服务的访问日志。
[root@www ~]# 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 'eth0'
"Jun 10, 2018 23:52:23.476398708 CST"   222.209.152.12  blog.deaoza.cn  GET /
"Jun 10, 2018 23:52:26.012348996 CST"   222.209.152.12  blog.deaoza.cn  GET /
"Jun 10, 2018 23:52:27.461011485 CST"   111.255.194.27      GET /
"Jun 10, 2018 23:52:35.721419187 CST"   222.209.152.12  blog.deaoza.cn  GET /
^C4 packets captured

11 Linux网络相关

ifconfig查看网卡ip

如果提示ifconfig命令不存在需要安装net-tools才能使用:

[root@www ~]# yum install -y  net-tools[root@www ~]# ifconfig eth0        #带网卡名可以查看指定网卡的信息,不指定网卡名会列出所有网卡的信息。
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.18.144.188  netmask 255.255.240.0  broadcast 172.18.159.255ether 00:16:3e:02:ab:ef  txqueuelen 1000  (Ethernet)RX packets 658723  bytes 422204534 (402.6 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 502257  bytes 139548559 (133.0 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

关闭、启动网卡

(注:如果是远程连接的话,关闭和启动网卡的操作必须同时执行,否则会导致无法再远程连接上。

ifdown eth0&&ifup eth0

[root@www ~]# ifdown eth0&&ifup eth0Determining IP information for eth0... done.
[root@www ~]# 

设定虚拟网卡

有时候需要给服务器增加一个IP。就可以通过添加虚拟网卡的方式增加一个IP

首先进入网卡配置目录

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

复制一份网卡配置文件

[root@long01 network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:0
[root@long01 network-scripts]# ls -dl ./ifcfg-ens33*
-rw-r--r--. 1 root root 223 5月  13 20:32 ./ifcfg-ens33
-rw-r--r--. 1 root root 223 6月  11 00:09 ./ifcfg-ens33:0

修改ifcfg-ens33:0配置文件,

将NAME和DEVICE改为ens33:0,
IPADDR修改为要添加的IP:我这里为10.1.1.100,根据自己情况来修改。
再将DNS删除##检查修改结果。
[root@long01 network-scripts]# grep -E "NAME|IPADDR|DNS|DEVICE" ifcfg-ens33:0
NAME=ens33:0
DEVICE=ens33:0
IPADDR=10.1.1.100
[root@long01 network-scripts]# 

重启ens33网卡后检查ens33:0网卡是否添加成功

[root@long01 network-scripts]# ifdown ens33 && ifup ens33
成功断开设备 'ens33'。
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)[root@long01 network-scripts]# ifconfig ens33:0
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 10.1.1.100  netmask 255.255.255.0  broadcast 10.1.1.255ether 00:0c:29:d3:3e:41  txqueuelen 1000  (Ethernet)

从宿主机CMD检查是否能ping通10.1.1.100

C:\Users\LongGe>ping 10.1.1.100正在 Ping 10.1.1.100 具有 32 字节的数据:
来自 10.1.1.100 的回复: 字节=32 时间<1ms TTL=64
来自 10.1.1.100 的回复: 字节=32 时间<1ms TTL=64
来自 10.1.1.100 的回复: 字节=32 时间<1ms TTL=64
来自 10.1.1.100 的回复: 字节=32 时间<1ms TTL=6410.1.1.100 的 Ping 统计信息:数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):最短 = 0ms,最长 = 0ms,平均 = 0ms

查看网卡是否连接

mii-tool ens33 查看网卡是否连接

[root@long01 network-scripts]# mii-tool ens33
ens33: negotiated 1000baseT-FD flow-control, link ok  #显示link ok 就是已连接

ethtool ens33 也可以查看网卡是否连接,并显示更为详细的信息。

[root@long01 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: NoSupports auto-negotiation: YesAdvertised link modes:  10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: NoAdvertised auto-negotiation: YesSpeed: 1000Mb/sDuplex: FullPort: Twisted PairPHYAD: 0Transceiver: internalAuto-negotiation: onMDI-X: off (auto)Supports Wake-on: dWake-on: dCurrent message level: 0x00000007 (7)drv probe linkLink detected: yes

更改主机名

主机名配置文件:/etc/hostname,修改主机名可以通过修改这个文件来实现。

[root@long01 ~]# sed -i 's/.*/long001/g' /etc/hostname
[root@long01 ~]# cat /etc/hostname
long001
通过修改hostname文件修改主机名后需要重启系统才会生效
[root@long001 ~]# hostname
long001

或者使用命令:hostnamectl set-hostname 来实现修改主机名。

[root@long001 ~]# hostnamectl set-hostname long0000
[root@long001 ~]# 登出
重新登录后就会生效。
[root@long0000 ~]# hostname
long0000

DNS配置

DNS一般是在网卡配置文件里设置,

如果需要临时添加一个DNS,可以在/etc/resolv.conf文件中添加,

[root@long0000 ~]# echo "nameserver 8.8.8.8" >> /etc/resolv.conf
[root@long0000 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 223.5.5.5
nameserver 61.139.2.69
nameserver 8.8.8.8

在CentOS7中,这个文件中添加的DNS会在重启网卡的时候被覆盖。

[root@long0000 ~]# ifdown ens33 && ifup ens33
成功断开设备 'ens33'。
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/2)
[root@long0000 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 223.5.5.5
nameserver 61.139.2.69

hosts文件

/etc/hosts文件与Windows中的hosts文件一样,可以将一个多个域名指向一个IP,类似于DNS的功能。

[root@long0000 ~]# echo "10.1.1.169 www.test1.com" >> /etc/hosts
[root@long0000 ~]# ping www.test1.com
PING www.test1.com (10.1.1.169) 56(84) bytes of data.
64 bytes from www.test1.com (10.1.1.169): icmp_seq=1 ttl=64 time=0.173 ms
64 bytes from www.test1.com (10.1.1.169): icmp_seq=2 ttl=64 time=0.388 ms
64 bytes from www.test1.com (10.1.1.169): icmp_seq=3 ttl=64 time=0.175 ms
64 bytes from www.test1.com (10.1.1.169): icmp_seq=4 ttl=64 time=0.234 ms
^C
--- www.test1.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.173/0.242/0.388/0.088 ms

扩展

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

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

12:Linux日常运维技巧-1相关推荐

  1. RedHat Linux和Cent Linux日常运维之安全加固详细篇

    Linux的使用环境也日趋成熟,各种开源产品络绎不绝,大有百花齐放的盛景,那么当Linux落地企业,回归工作时,我们还要面对这Linux运维方面的诸多问题.下面就列举一些安全加固方面的操作. http ...

  2. linux日常运维手册_Linux日常运维上传下载工具lrzsz

    安装好Linux系统之后,我们使用SecureCRT连接上我们的服务器 对着 黑乎乎的命令行,好激动 突然,需要上传个zip或者什么网页项目到服务器上,怎么上传呢 今天给大家介绍一个非常简单,非常之好 ...

  3. Linux日常运维1 w vmstat top sar nload io free ps tcpdump

    1.W命令查看当前系统负载 [root@localhost ~]# w10:15:23 up 1:39, 1 user, load average: 0.00, 0.01, 0.05 USER TTY ...

  4. Linux日常运维--6

    2019独角兽企业重金招聘Python工程师标准>>> linux任务计划cron cat /etc/crontab   查看任务计划配置文件 格式:分 时 日 月 周 user c ...

  5. Linux日常运维(rsync通过服务连接,linux日志,screen)

    一.rsync通过服务同步 分为服务端(server1) 和客户端(server2) 服务端(server1): [root@litongyao ~]# vim /etc/rsyncd.conf po ...

  6. 零基础转行Linux云计算运维工程师获得20万年薪的超级学习技巧

    云计算概念一旦产生便一发不可收拾,成为移动互联网时代最为火热的行业之一.国内各大互联网公司例如阿里.腾讯.百度.网易等纷纷推出自己的云计算产品,3月10日,腾讯云0.01元投标时间更是让云计算在普罗大 ...

  7. Linux 系统日常运维九大技能和运维网络知识总结

    一.Linux 系统日常运维九大技能 1.安装部署 方式:U盘,光盘和网络安装 其中网络安装已经成为了目前批量部署的首选方式:主要工具有Cobbler和PXE+kickstart 可以参考如下链接内容 ...

  8. Linux系统运维九大技能及知识总结,90%日常运维

    Linux 系统运维九大技能及知识总结,搞定 90% 日常运维 | 周末送资料 以下内容包括RedHat和CentOS运维工作中常用的几大技能,并总结了系统运维中网络方面的规划.操作及故障处理等知识. ...

  9. RedHat / Centos   Linux 系统运维与管理实践技巧荟萃,持续更新

    RedHat / Centos   Linux  系统运维与管理实践技巧荟萃 磁盘分区相关  Linux  fdisk 磁盘分区工具以及安装 GRUB 实战: 准备工作,前置知识 演示环境基于 cen ...

最新文章

  1. C# vs C++ 全局照明渲染性能比试
  2. python爬虫面试问题_Python爬虫面试总结
  3. TJOI2018Party
  4. GNU make manual 翻译( 一百六十)
  5. javascript解析机制——预解析
  6. mysql 创建函数_MySQL文件及目录权限设置分析-爱可生
  7. 干货:实现数据可视化的几个工具选择(工具+编程语言)
  8. Robot Motion(模拟题bfs)
  9. 如何编写python代码
  10. vscode的setting.json个人配置及个人常用插件
  11. 一个老菜鸟的学习 ASP.NET MVC 3.0与EF 4.1的痛苦经历与项目源代码分享。
  12. 0xc0000005 系统应用日志_关于游戏崩溃并提示0xC0000005错误的解决方案!
  13. 自动定时执行任务、定时任务执行的几种实现方法
  14. IIS6.0文件解析漏洞
  15. 【百度春招】 买帽子
  16. 用计算机制作演示文稿教案博客,信息技术:《制作演示文稿的一般过程》教案...
  17. [DAY001]考研数学极限的计算知识点与题目总结(一)
  18. 苹果手机怎么连接蓝牙耳机_「科技犬」除了苹果AirPods,真无线蓝牙耳机到底怎么选?_蓝牙耳机...
  19. [渝粤教育] 西南科技大学 财务管理与分析 在线考试复习资料(3)
  20. 期盼小豆发芽(2008.7.20)

热门文章

  1. 重装系统后有线网上不了网,校园网无法自动获取
  2. vue项目保存代码后浏览器页面自动更新
  3. 高德地图实现卫星图-区域掩模3D
  4. python数据分析学生成绩查询系统_python数据分析-学生成绩分析
  5. 理解Sortino索提诺比率及Python实现
  6. 日语动词里的未然形、连用形、终止形、连体形、假定形、命令形、推量形各代表的意思
  7. 基于springboot+jsp的服装穿搭信息管理系统
  8. 【图像修复】基于深度学习的图像修复算法的MATLAB仿真
  9. 一生践行“心正则字正”
  10. 微服务商城系统(十五)秒杀基础