Linux入门-第六周

家住魔仙堡 提交于 2020-01-15 07:45:14

1、总结IP地址规划

  IP地址的合理规划是网络设计中最重要的一环,在大型网络中必须对IP地址进行统一规划并得到实施。IP地址规划的好坏影响到网络路由协议算法的效率,影响到网络的性能,影响到网络的拓展,影响到网络的管理,也必将直接影响到网络应用的进一步发展。毫不夸张的说,看一个网络的规划质量和网络工程师的技术水准,直接看他的IP地址规划就好了。

  IP地址规划的基本原则

    1)唯一性:一个IP网络中不能有两个主机采用相同的IP地址。即使使用了支持地址重叠的MPLS/VPN技术,也尽量不要规划为相同的地址。

    2)连续性:连续地址在层次结构网络中易于进行路径叠合,大大缩减路由表,提高路由算法的效率。

    3)可扩展性:地址分配在每一层次上都要留有余量,在网络规模扩展时能保证地址所需的连续性。

    4)实意性:顾名思义就是在分配IP地址时尽量使所分配的IP地址具有一定的实际意义,使人一看到该IP地址就可以知道此IP地址分配给了哪个部门或哪个地区。

  在分配IP地址时需要注意一下几点

    配置Loopback地址时,使用的子网掩码为32

    配置互联地址时,使用的子网掩码为30

    对各业务网关进行统一设定,比如将所有的网关统一设置为X.X.X.254

2、总结常见网络管理命令

    ifconfig:

      ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置网卡的信息。在网卡重启后机器重启后,配置就不存在,要想配置信息永久保存,需要修改网卡的配置文件

      用法:ifconfig [-v] [-a] [-s] [interface]

         ifconfig [-v] interface [aftype] options | address ...

      举例:

 1 [root@N37012 ~]# ifconfig -v eth0
 2 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
 3         inet 172.30.0.3  netmask 255.255.240.0  broadcast 172.30.15.255
 4         ether 52:54:00:12:cd:5a  txqueuelen 1000  (Ethernet)
 5         RX packets 743398  bytes 356777696 (340.2 MiB)
 6         RX errors 0  dropped 0  overruns 0  frame 0
 7         TX packets 601991  bytes 74442785 (70.9 MiB)
 8         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 9 
10 [root@N37012 ~]# ifconfig -a eth0
11 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
12         inet 172.30.0.3  netmask 255.255.240.0  broadcast 172.30.15.255
13         ether 52:54:00:12:cd:5a  txqueuelen 1000  (Ethernet)
14         RX packets 743456  bytes 356782228 (340.2 MiB)
15         RX errors 0  dropped 0  overruns 0  frame 0
16         TX packets 602041  bytes 74449577 (71.0 MiB)
17         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
18 
19 [root@N37012 ~]# ifconfig -s eth0
20 Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
21 eth0             1500   743503      0      0 0        602080      0      0      0 BMRU
22 [root@N37012 ~]# ifconfig 
23 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
24         inet 172.30.0.3  netmask 255.255.240.0  broadcast 172.30.15.255
25         ether 52:54:00:12:cd:5a  txqueuelen 1000  (Ethernet)
26         RX packets 743572  bytes 356791022 (340.2 MiB)
27         RX errors 0  dropped 0  overruns 0  frame 0
28         TX packets 602146  bytes 74461854 (71.0 MiB)
29         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
30 
31 lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
32         inet 127.0.0.1  netmask 255.0.0.0
33         loop  txqueuelen 1000  (Local Loopback)
34         RX packets 2  bytes 272 (272.0 B)
35         RX errors 0  dropped 0  overruns 0  frame 0
36         TX packets 2  bytes 272 (272.0 B)
37         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
38 
39 [root@N37012 ~]# 

    Ping

      ping命令是用来测试TCP/IP网络是否畅通或者测试网络连接速度的命令,对确定网络是否正确连接,以及网络连接的状况十分有用,简单来表示就是ping一个目标地址,如果ping运行正确,大体上就可以排除网络访问层、网卡、路由器等存在的故障,从而缩小问题的范围。ping是ICMP协议(ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息)里面的其中一个命令。另一条为tracert。在Linux中为traceroute。

      用法:ping [参数] 

        -d:使用Socket的SO_DEBUG功能;
        -c<完成次数>:设置完成要求回应的次数;
        -f:极限检测;
        -i<间隔秒数>:指定收发信息的间隔时间;
        -L<网络界面>:使用指定的网络界面送出数据包;
        -l<前置载入>:设置在送出要求信息之前,先行发出的数据包;
        -n:只输出数值;
        -p<范本样式>:设置填满数据包的范本样式;
        -q:不显示指令执行过程,开头和结尾的相关信息除外;
        -r:忽略普通的Routing Table,直接将数据包送到远端主机上;
        -R:记录路由过程;
        -s<数据包大小>:设置数据包的大小;
        -v:详细显示指令的执行过程。
        -t<存活数值>:设置存活数值TTL的大小

      举例:

[root@N37012 ~]# ping -c 4 192.168.2.1
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=0.439 ms
64 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=0.822 ms
64 bytes from 192.168.2.1: icmp_seq=3 ttl=64 time=0.699 ms
64 bytes from 192.168.2.1: icmp_seq=4 ttl=64 time=0.862 ms

--- 192.168.2.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.439/0.705/0.862/0.167 ms
[root@N37012 ~]# 

    route

      route命令是用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。和ifconfig一样,直接执行rout命令添加的路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了。主要通过修改配置文件来永久生效。配置文件路径在*/etc/rc.local。

      用法:route (选项) (参数)

        选项:-A:设置地址类型;

           -C:打印将Linux核心的路由缓存;

           -v:详细信息模式;

           -n:不执行DNS反向查找,直接显示数字形式的IP地址;

           -e: netstat格式显示路由表;

           -net:到一个网络的路由表;

           -host:到一个主机的路由表。

        参数:Add:增加指定的路由记录 

           Del:删除指定的路由记录

           Target:目的网络或目的主机

           w:设置默认网关

           mss:设置TCP的最大区块长度(MSS),单位为MB

           window:指定通过路由表的TCP连接的TCP窗口大小 

           dev:路由记录所表示的网络接口

      举例:

 1 [root@N37012 ~]# route -n
 2 Kernel IP routing table
 3 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
 4 192.168.2.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33
 5 192.168.2.0     0.0.0.0         255.255.255.0   U     101    0        0 ens37
 6 192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
 7 [root@N37012 ~]# route add default gw 192.168.2.1
 8 [root@N37012 ~]# route -n
 9 Kernel IP routing table
10 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
11 0.0.0.0         192.168.2.1     0.0.0.0         UG    0      0        0 ens33
12 192.168.2.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33
13 192.168.2.0     0.0.0.0         255.255.255.0   U     101    0        0 ens37
14 192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
15 [root@N37012 ~]# route del default gw 192.168.2.1
16 [root@N37012 ~]# route -n
17 Kernel IP routing table
18 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
19 192.168.2.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33
20 192.168.2.0     0.0.0.0         255.255.255.0   U     101    0        0 ens37
21 192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
22 [root@N37012 ~]#

    Tracerout

      tracerout命令用于追踪数据包在网络上的传输时的全部路径。他默认发送的数据包大小是40字节。通过tracert我们可以知道信息从你这台计算机到另一端的计算机主机走的网络路径。当然每次的数据包由某一同样的出发点到某一同样的目的地走的路径可能会不一样。因为网络中也会存在负载均衡等问题。导致走的路径可能不一致。tracerout通过发送小的数据包到目的设备直到返回,来测试需要多长时间。一条路径上的每个设备tracerout要测试3次。数据的结果包括每次测试的时间(ms)和设备的名称(如果有)以及IP地址。

      用法:tracerout (选项)  (参数)

        选项:-d:使用Socket层级的排错功能 

           -f<存活时间>:设置第一个检测数据包的存活数值TTL的大小

           -F:设置勿离断位 

           -g<网关>:设置来源路由网关,最多可设置8个

           -i<网络界面>:使用指定的网络界面送出数据包 

           -l:使用ICMP回应取代UDP资料信息 

           -m<存活数值>:设置检测数据包的最大存活数值TTL的大小

           -n:直接使用IP地址而非主机名 

           -p<通信端口>:设置UDP传输协议的通信端口 

           -r:忽略普通的Routing Table,直接将数据包送到远端主机上 

           -s<来源地址>:设置本地主机送出数据包的TOS数值 

           -v:详细显示指令的执行过程 

           -w<超时秒数>:设置等待远端主机回报的时间 

           -x:开启或关闭数据包的正确性检验

        参数:指定目的主机IP地址或主机名

        举例:

 1 [root@N37012 ~]# traceroute -I www.baidu.com
 2 traceroute to www.baidu.com (180.97.33.107), 30 hops max, 60 byte packets
 3  1  100.93.219.130 (100.93.219.130)  1.833 ms  2.866 ms  3.777 ms
 4  2  100.93.247.230 (100.93.247.230)  1.136 ms  1.413 ms  1.811 ms
 5  3  10.196.72.141 (10.196.72.141)  1.137 ms  1.562 ms  1.847 ms
 6  4  10.196.5.109 (10.196.5.109)  6.966 ms  6.975 ms  7.286 ms
 7  5  10.200.20.234 (10.200.20.234)  6.973 ms  6.984 ms  7.232 ms
 8  6  10.196.0.78 (10.196.0.78)  7.260 ms  7.023 ms  7.016 ms
 9  7  * * *
10  8  125.64.29.173 (125.64.29.173)  8.719 ms * *
11  9  182.140.220.17 (182.140.220.17)  7.763 ms  7.830 ms  7.814 ms
12 10  * * *
13 11  202.102.69.186 (202.102.69.186)  46.304 ms  45.148 ms  45.120 ms
14 12  * * *
15 13  180.97.32.6 (180.97.32.6)  109.534 ms  109.496 ms  71.308 ms
16 14  * * *
17 15  * * *
18 16  180.97.33.107 (180.97.33.107)  41.325 ms  41.346 ms  41.345 ms
19 [root@N37012 ~]# 

    netstat

      netstat通过遍历proc来获取socke信息。用来打印linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。

      用法:netstat (选项)

        选项:-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”参数相同;

      举例:

 1 [root@N37012 ~]# netstat -a
 2 Active Internet connections (servers and established)
 3 Proto Recv-Q Send-Q Local Address           Foreign Address         State      
 4 tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
 5 tcp        0     52 N37012:ssh              220.112.121.222:38827   ESTABLISHED
 6 tcp        0      0 N37012:47736            169.254.0.55:lsi-bobcat ESTABLISHED
 7 tcp        0      0 N37012:ssh              220.112.121.222:35209   ESTABLISHED
 8 udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
 9 udp        0      0 N37012:ntp              0.0.0.0:*                          
10 udp        0      0 N37012:ntp              0.0.0.0:*                          
11 Active UNIX domain sockets (servers and established)
12 Proto RefCnt Flags       Type       State         I-Node   Path
13 unix  2      [ ACC ]     STREAM     LISTENING     10259    /run/lvm/lvmpolld.socket
14 unix  2      [ ACC ]     STREAM     LISTENING     12316    /run/dbus/system_bus_socket
15 unix  2      [ ACC ]     STREAM     LISTENING     27686    /run/systemd/private
16 unix  2      [ ]         DGRAM                    10033    /run/systemd/shutdownd
17 unix  2      [ ACC ]     SEQPACKET  LISTENING     27711    /run/udev/control
18 unix  2      [ ACC ]     STREAM     LISTENING     16614    /usr/local/yd.socket.server
19 unix  2      [ ACC ]     STREAM     LISTENING     12633    /var/run/acpid.socket
20 unix  3      [ ]         STREAM     CONNECTED     16623    /usr/local/yd.socket.client
21 unix  3      [ ]         DGRAM                    7103     /run/systemd/notify
22 unix  2      [ ]         DGRAM                    7105     /run/systemd/cgroups-agent
23 unix  2      [ ACC ]     STREAM     LISTENING     7114     /run/systemd/journal/stdout
24 unix  2      [ ACC ]     STREAM     LISTENING     13004    /var/run/lsm/ipc/simc
25 unix  5      [ ]         DGRAM                    7117     /run/systemd/journal/socket
26 unix  2      [ ACC ]     STREAM     LISTENING     13006    /var/run/lsm/ipc/sim
27 unix  12     [ ]         DGRAM                    7119     /dev/log
28 unix  2      [ ACC ]     STREAM     LISTENING     10236    /run/lvm/lvmetad.socket
29 unix  2      [ ]         DGRAM                    12630    
30 unix  2      [ ]         DGRAM                    881687   
31 unix  2      [ ]         DGRAM                    895959   
32 unix  2      [ ]         DGRAM                    29972    
33 unix  3      [ ]         STREAM     CONNECTED     27685    /run/dbus/system_bus_socket
34 unix  2      [ ]         DGRAM                    30787    
35 unix  3      [ ]         STREAM     CONNECTED     27783    /run/systemd/journal/stdout
36 unix  2      [ ]         DGRAM                    27781    
37 unix  3      [ ]         STREAM     CONNECTED     12395    
38 unix  3      [ ]         STREAM     CONNECTED     30784    /run/systemd/journal/stdout
39 unix  3      [ ]         STREAM     CONNECTED     27684    
40 unix  3      [ ]         DGRAM                    27798    
41 unix  3      [ ]         STREAM     CONNECTED     30335    
42 unix  2      [ ]         DGRAM                    29844    
43 unix  3      [ ]         DGRAM                    27797    
44 unix  3      [ ]         STREAM     CONNECTED     40540    
45 unix  3      [ ]         STREAM     CONNECTED     16624    /usr/local/yd.socket.server
46 unix  3      [ ]         STREAM     CONNECTED     12890    /run/systemd/journal/stdout
47 unix  3      [ ]         STREAM     CONNECTED     12476    
48 unix  3      [ ]         STREAM     CONNECTED     14563    /run/systemd/journal/stdout
49 unix  3      [ ]         STREAM     CONNECTED     12475    
50 unix  3      [ ]         STREAM     CONNECTED     40541    /run/dbus/system_bus_socket
51 unix  2      [ ]         DGRAM                    16739    
52 unix  2      [ ]         DGRAM                    12451    
53 unix  3      [ ]         STREAM     CONNECTED     27779    
54 unix  3      [ ]         STREAM     CONNECTED     14562    
55 unix  3      [ ]         STREAM     CONNECTED     40777    /run/dbus/system_bus_socket
56 unix  2      [ ]         DGRAM                    13991    
57 unix  3      [ ]         STREAM     CONNECTED     40653    
58 unix  3      [ ]         STREAM     CONNECTED     30783    
59 unix  2      [ ]         DGRAM                    10426    
60 unix  3      [ ]         STREAM     CONNECTED     40776    
61 unix  3      [ ]         STREAM     CONNECTED     40654    /run/systemd/journal/stdout
62 unix  3      [ ]         STREAM     CONNECTED     12997    /run/dbus/system_bus_socket
63 unix  2      [ ]         DGRAM                    40543    
64 unix  3      [ ]         STREAM     CONNECTED     12935    
65 unix  3      [ ]         STREAM     CONNECTED     29974    
66 unix  3      [ ]         STREAM     CONNECTED     29973    
67 unix  3      [ ]         STREAM     CONNECTED     30336    /run/systemd/journal/stdout
68 unix  2      [ ]         DGRAM                    12989    
69 unix  3      [ ]         STREAM     CONNECTED     12936    /run/systemd/journal/stdout
70 unix  3      [ ]         STREAM     CONNECTED     12996    
71 unix  3      [ ]         STREAM     CONNECTED     12396    /run/systemd/journal/stdout
72 unix  3      [ ]         STREAM     CONNECTED     12886    /run/systemd/journal/stdout
73 unix  2      [ ]         DGRAM                    41093    
74 unix  3      [ ]         STREAM     CONNECTED     12885    
75 unix  3      [ ]         STREAM     CONNECTED     12889    
76 [root@N37012 ~]# netstat -at
77 Active Internet connections (servers and established)
78 Proto Recv-Q Send-Q Local Address           Foreign Address         State      
79 tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
80 tcp        0     52 N37012:ssh              220.112.121.222:38827   ESTABLISHED
81 tcp        0      0 N37012:47736            169.254.0.55:lsi-bobcat ESTABLISHED
82 tcp        0      0 N37012:ssh              220.112.121.222:35209   ESTABLISHED
83 [root@N37012 ~]# netstat -au
84 Active Internet connections (servers and established)
85 Proto Recv-Q Send-Q Local Address           Foreign Address         State      
86 udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
87 udp        0      0 N37012:ntp              0.0.0.0:*                          
88 udp        0      0 N37012:ntp              0.0.0.0:*                          
89 [root@N37012 ~]# 
View Code

    ss

      ss命令使用netlink与内核tcp_diag模块通信获取socket信息。他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计. 它比其他工具展示更多tcp和state信息. 它是一个非常实用、快速、有效的跟踪IP连接和sockets的新工具.

        ss [OPTION] ... [FILTER ]

          选项:-t: tcp协议相关

             -u: udp协议相关

             -w: 裸套接字相关

             -x:unix sock相关

             -l: listen状态的连接

             -a: 所有

             -n: 数字格式

             -p: 相关的程序及PID

             -e: 扩展的信息

             -m:内存用量

             -o:计时器信息

          FILTER : [ state TCP-STATE ] [ EXPRESSION ]

              TCP的常见状态:tcp finite state machine:

                LISTEN: 监听

                ESTABLISHED:已建立的连接

                FIN_WAIT_1

                FIN_WAIT_2

                SYN_SENT

                SYN_RECV

                CLOSED

              EXPRESSION:

                dport =

                sport =

                  示例:’( dport = :ssh or sport = :ssh )’

              常用组合:-tan, -tanl, -tanlp, -uan

          举例:

 1 [root@N37012 ~]# ss -t -a        #列出所有tcp sockets
 2 State      Recv-Q Send-Q                       Local Address:Port                                        Peer Address:Port                
 3 LISTEN     0      128                                      *:ssh                                                    *:*                    
 4 ESTAB      0      52                              172.30.0.3:ssh                                      220.112.121.222:38827                
 5 ESTAB      0      0                               172.30.0.3:47736                                       169.254.0.55:lsi-bobcat           
 6 ESTAB      0      0                               172.30.0.3:ssh                                      220.112.121.222:35209                
 7 [root@N37012 ~]# ss -o state all '( dport = :ntp or sport = ntp )'    #列出所有ntp连接
 8 Netid  State      Recv-Q Send-Q                    Local Address:Port                                     Peer Address:Port                
 9 udp    UNCONN     0      0                            172.30.0.3:ntp                                                 *:*                    
10 udp    UNCONN     0      0                             127.0.0.1:ntp                                                 *:*                    
11 [root@N37012 ~]# ss -o state established '( dport = :http or sport = :http )'    #列所有的tcp sockets
12 Netid  Recv-Q Send-Q                         Local Address:Port                                          Peer Address:Port                
13 [root@N37012 ~]# 

3、给定IP地址167.77.88.99和掩码255.255.255.192,子网号是什么?广播地址是什么?有效IP地址是什么?

      IP地址分类:
      A类:000~127,默认子网掩码:255.0.0.0
      B类:128~191,默认子网掩码:255.255.0.0
      C类:192~223,默认子网掩码:255.255.255.0
      D类:224~239
      E类:240~255

      167.77.88.99从IP地址分类看,是一个B类地址;

      掩码255.255.255.192可写成167.77.88.99/25

      167.77.88.99可写成2进制的:10100111.01001101.01011000.01100011(4段8位数)

      255.255.255.192写成2进制为:11111111.111111111.11111111.10000000 

      网络号:两者进行与运算(对应为全是1结果为1,否则为0):10100111.01001101.01011000.00000000

      1×20+1×21+1×22+1×23+1×24+1×25+1×26+1×27=1+2+4+8+16+32+64+128=255

      主机号:子网掩码取反再和ip做与运算:00000000.00000000.00000000.01111111(0.0.0.127)

                          10100111.01001101.01011000.01100011(167.77.88.99)

                          00000000.00000000.00000000.01100011(0.0.0.143)

      子网号:这个IP本来就是B类地址。默认的子网是255.255.255.0,但是这里的子网是255.255.255.192,是25位,所以32位-25位=2^6=64 

      即子网号:167.77.88.64

      广播地址10100111.01001101.01011000.01111111即:167.77.88.127

      有效ip地址:167.77.88.65····167.77.88.126

4、添加IP地址192.168.2.2/24到eth0网卡上

[root@N37012 ~]# ip addr add 192.168.2.2/24 dev ens33        #临时添加IP地址
[root@N37012 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
[root@N37012 ~]# ping 192.168.2.2                    #物理机使用的地址为192.168.2.2,所以虚拟机未配置
PING 192.168.2.2 (192.168.2.2) 56(84) bytes of data.
64 bytes from 192.168.2.2: icmp_seq=1 ttl=64 time=0.057 ms
64 bytes from 192.168.2.2: icmp_seq=2 ttl=64 time=0.044 ms
^C
--- 192.168.2.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.044/0.050/0.057/0.009 ms
[root@N37012 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33   #永久配置IP地址需要在此配置IP地址方能在重启网卡和计算机后永久生效。
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
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
UUID=6800e0b7-72db-44ff-94df-0b2abe737623
DEVICE=ens33
ONBOOT=yes
[root@N37012 ~]# 

5、top,iostat,vmstat命令总结

  top

    top命令主要用来观察和收集运行在系统上的进程和一些有用信息。

    PID:进程的ID

    USER:进程属主的名字

    PR:进程的优先级

    NI:进程的nice值(介于-20 到 +19之间,值越大,越谦让)

    VIRT:进程占用的虚拟内存总量

    RES:进程占用的物理内存总量

    SHR:进程和其他进程共享的内存总量

    S:进程的状态(D代表可终端的休眠状态,R代表在运行的状态,S代表休眠状态,T代表跟踪状态或停止状态,Z代表僵化状态)

    %CPU:进程使用的CPU时间比例

    %MEM:进程实用的内存占可用内存的比例

    TIME+:自进程启动到目前为止的CPU时间总量

    COMMAND:进程所对应的命令行名称,也就是启动的程序名。

    快捷键:

      top界面按d键,可以更改刷新时间。默认3秒。

      top界面按M键,可以按照内存来进行排序。

      top界面按P键,可以按照cpu使用率来排序。

      top界面按i键,可以只显示状态为R的进程。

      top界面按c键,可以显示进程的完整的名称。

      top -s以安全模式启动top界面,可以防止在top界面对进程进行修改操作。

      按shift + >键,可以依次按照PID、USER、PR·····来进行排序。

      按shift + <键,可以依次按照COMMAND、TIME+、%MEM·····来进行排序。

      top界面按o键,还可以自定义显示哪些列。

  iostat

      iostst主要用来初步判断系统性能问题。

        命令:iostst [选项]

          -c;可以用来查看部分cpu状态信息

          -k;某些使用block为单位的列,强制使用kilobytes为单位

          -d;显示磁盘使用状态;

          -x;输出更多详细信息

        举例:

 1 [root@N37012 ~]# iostat -d -k 1 3        #查看TPS和吞吐量信息,没1秒刷新一次,查看3次
 2 Linux 3.10.0-862.el7.x86_64 (N37012)     04/27/2019     _x86_64_    (1 CPU)
 3 
 4 Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
 5 vda               3.86         9.79        36.58    1443229    5391328
 6 scd0              0.00         0.01         0.00        820          0
 7 
 8 Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
 9 vda               0.00         0.00         0.00          0          0
10 scd0              0.00         0.00         0.00          0          0
11 
12 Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
13 vda               0.00         0.00         0.00          0          0
14 scd0              0.00         0.00         0.00          0          0
15 
16 [root@N37012 ~]# iostat -d -x -k 1 3        #查看设备使用率和响应时间
17 Linux 3.10.0-862.el7.x86_64 (N37012)     04/27/2019     _x86_64_    (1 CPU)
18 
19 Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
20 vda               0.00     1.65    0.43    3.44     9.79    36.58    24.00     0.03    8.33    2.36    9.07   0.74   0.29
21 scd0              0.00     0.00    0.00    0.00     0.01     0.00    17.45     0.00    0.35    0.35    0.00   0.33   0.00
22 
23 Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
24 vda               0.00     4.04    0.00   22.22     0.00   105.05     9.45     0.07    3.14    0.00    3.14   0.27   0.61
25 scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
26 
27 Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
28 vda               0.00     0.00    0.00    1.01     0.00     4.04     8.00     0.00    3.00    0.00    3.00   3.00   0.30
29 scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
30 
31 [root@N37012 ~]# iostat -c 1 3        #查看CPU状态
32 Linux 3.10.0-862.el7.x86_64 (N37012)     04/27/2019     _x86_64_    (1 CPU)
33 
34 avg-cpu:  %user   %nice %system %iowait  %steal   %idle
35            0.55    0.00    0.37    0.18    0.00   98.89
36 
37 avg-cpu:  %user   %nice %system %iowait  %steal   %idle
38            0.00    0.00    0.00    0.00    0.00  100.00
39 
40 avg-cpu:  %user   %nice %system %iowait  %steal   %idle
41            0.00    0.00    0.00    0.00    0.00  100.00
42 
43 [root@N37012 ~]# iostat -d -d 1 3
44 Linux 3.10.0-862.el7.x86_64 (N37012)     04/27/2019     _x86_64_    (1 CPU)
45 
46 Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
47 vda               3.86         9.79        36.58    1443229    5392188
48 scd0              0.00         0.01         0.00        820          0
49 
50 Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
51 vda               0.00         0.00         0.00          0          0
52 scd0              0.00         0.00         0.00          0          0
53 
54 Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
55 vda               2.00         0.00        48.00          0         48
56 scd0              0.00         0.00         0.00          0          0
57 
58 [root@N37012 ~]# iostat -x -k 1 3
59 Linux 3.10.0-862.el7.x86_64 (N37012)     04/27/2019     _x86_64_    (1 CPU)
60 
61 avg-cpu:  %user   %nice %system %iowait  %steal   %idle
62            0.55    0.00    0.37    0.18    0.00   98.89
63 
64 Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
65 vda               0.00     1.65    0.43    3.44     9.79    36.57    24.00     0.03    8.33    2.36    9.07   0.74   0.29
66 scd0              0.00     0.00    0.00    0.00     0.01     0.00    17.45     0.00    0.35    0.35    0.00   0.33   0.00
67 
68 avg-cpu:  %user   %nice %system %iowait  %steal   %idle
69            0.00    0.00    0.00    0.00    0.00  100.00
70 
71 Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
72 vda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
73 scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
74 
75 avg-cpu:  %user   %nice %system %iowait  %steal   %idle
76            1.00    0.00    2.00    1.00    0.00   96.00
77 
78 Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
79 vda               0.00     1.00    0.00   84.00     0.00   368.00     8.76     0.51    6.06    0.00    6.06   0.14   1.20
80 scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
81 
82 [root@N37012 ~]# 
View Code

  vmstat

    vmstat命令是常见的Linux系统监控工具,可以展现服务器的状态值,包括CPU使用率,虚拟内存交换情况,I/O读写等信息。

      命令:vmstat [options] [delay [count]]

        delay:刷新时间间隔。如果不指定,只显示一条结果。

        count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。

        -a:显示活跃和非活跃内存

        -f:显示从系统启动至今的fork数量 。

        -m:显示slabinfo

        -n:只在开始时显示一次各字段名称。

        -s:显示内存相关统计信息及多种系统活动数量。

        -d:显示磁盘相关统计信息。

        -p:显示指定磁盘分区统计信息

        -S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)

        -V:显示vmstat版本信息。

      举例:

  1 [root@N37012 ~]# vmstat -a 1 3
  2 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
  3  r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
  4  2  0      0 149932 290992 446728    0    0    10    37  215  244  1  0 99  0  0
  5  0  0      0 149908 290992 446728    0    0     0     0  133  145  0  0 100  0  0
  6  0  0      0 149908 290992 446728    0    0     0     0  118  130  0  0 100  0  0
  7 [root@N37012 ~]# vmstat -f
  8        281326 forks
  9 [root@N37012 ~]# vmstat -d
 10 disk- ------------reads------------ ------------writes----------- -----IO------
 11        total merged sectors      ms  total merged sectors      ms    cur    sec
 12 vda    63132    355 2887050  148703 510668 244685 10833760 4624937      0    425
 13 sr0       94      0    1640      33      0      0       0       0      0      0
 14 loop0      0      0       0       0      0      0       0       0      0      0
 15 [root@N37012 ~]# vmstat -m
 16 Cache                       Num  Total   Size  Pages
 17 SCTPv6                       10     10   1536     10
 18 SCTP                          0      0   1408     11
 19 isofs_inode_cache            12     12    640     12
 20 ext4_groupinfo_4k           420    420    136     30
 21 ext4_inode_cache          41257  53250   1032     15
 22 ext4_xattr                  276    276     88     46
 23 ext4_free_data              384    384     64     64
 24 ext4_allocation_context      32     32    128     32
 25 ext4_io_end                1344   1344     72     56
 26 ext4_extent_status         6795  19788     40    102
 27 jbd2_journal_handle          85     85     48     85
 28 jbd2_journal_head           756    756    112     36
 29 jbd2_revoke_table_s         256    256     16    256
 30 jbd2_revoke_record_s        768    768     32    128
 31 ip6_dst_cache                18     18    448      9
 32 RAWv6                        13     13   1216     13
 33 UDPLITEv6                     0      0   1216     13
 34 UDPv6                        13     13   1216     13
 35 tw_sock_TCPv6                 0      0    256     16
 36 TCPv6                        15     15   2176     15
 37 cfq_queue                     0      0    232     17
 38 bsg_cmd                       0      0    312     13
 39 mqueue_inode_cache            9      9    896      9
 40 hugetlbfs_inode_cache        13     13    608     13
 41 configfs_dir_cache            0      0     88     46
 42 dquot                       240    240    256     16
 43 userfaultfd_ctx_cache         0      0    192     21
 44 fanotify_event_info           0      0     56     73
 45 pid_namespace                 0      0   2200     14
 46 Cache                       Num  Total   Size  Pages
 47 posix_timers_cache           16     16    248     16
 48 UDP-Lite                      0      0   1088     15
 49 flow_cache                    0      0    144     28
 50 xfrm_dst_cache                0      0    576     14
 51 UDP                          45     45   1088     15
 52 tw_sock_TCP                  64     64    256     16
 53 TCP                          16     16   1984      8
 54 dax_cache                    10     10    768     10
 55 blkdev_queue                 13     13   2424     13
 56 blkdev_ioc                   78     78    104     39
 57 user_namespace                0      0    480      8
 58 dmaengine-unmap-128          15     15   1088     15
 59 sock_inode_cache            132    132    640     12
 60 fsnotify_mark_connector    4590   4590     24    170
 61 net_namespace                 0      0   5248      6
 62 shmem_inode_cache           792    792    680     12
 63 Acpi-ParseExt              1120   1120     72     56
 64 Acpi-State                 4437   4437     80     51
 65 task_delay_info             144    144    112     36
 66 taskstats                    12     12    328     12
 67 proc_inode_cache           1674   1728    656     12
 68 sigqueue                     25     25    160     25
 69 bdev_cache                   19     19    832     19
 70 kernfs_node_cache         12954  12954    120     34
 71 mnt_cache                   140    140    384     10
 72 inode_cache                9152   9152    592     13
 73 dentry                    42510  53613    192     21
 74 iint_cache                    0      0    128     32
 75 selinux_inode_security    10404  10404     40    102
 76 Cache                       Num  Total   Size  Pages
 77 buffer_head               80193  91533    104     39
 78 vm_area_struct             3616   4032    216     18
 79 mm_struct                    60     60   1600     10
 80 files_cache                  60     60    640     12
 81 signal_cache                112    112   1152     14
 82 sighand_cache               105    105   2112     15
 83 task_xstate                 133    133    832     19
 84 task_struct                 123    136   4048      8
 85 anon_vma                   1944   2142     80     51
 86 shared_policy_node        12291  22355     48     85
 87 numa_policy                  15     15    264     15
 88 radix_tree_node           10086  12404    584     14
 89 idr_layer_cache             180    180   2112     15
 90 dma-kmalloc-8192              0      0   8192      4
 91 dma-kmalloc-4096              0      0   4096      8
 92 dma-kmalloc-2048              0      0   2048      8
 93 dma-kmalloc-1024              0      0   1024      8
 94 dma-kmalloc-512               8      8    512      8
 95 dma-kmalloc-256               0      0    256     16
 96 dma-kmalloc-128               0      0    128     32
 97 dma-kmalloc-64                0      0     64     64
 98 dma-kmalloc-32                0      0     32    128
 99 dma-kmalloc-16                0      0     16    256
100 dma-kmalloc-8                 0      0      8    512
101 dma-kmalloc-192               0      0    192     21
102 dma-kmalloc-96                0      0     96     42
103 kmalloc-8192                 24     36   8192      4
104 kmalloc-4096                 86    128   4096      8
105 kmalloc-2048                277    312   2048      8
106 Cache                       Num  Total   Size  Pages
107 kmalloc-1024               1016   1032   1024      8
108 kmalloc-512                 522    536    512      8
109 kmalloc-256                1261   1920    256     16
110 kmalloc-192                2037   2037    192     21
111 kmalloc-128                 832    832    128     32
112 kmalloc-96                 1742   2100     96     42
113 kmalloc-64                12390  13376     64     64
114 kmalloc-32                 1152   1152     32    128
115 kmalloc-16                 2560   2560     16    256
116 kmalloc-8                  3584   3584      8    512
117 kmem_cache_node             128    128     64     64
118 kmem_cache                  112    112    256     16
119 [root@N37012 ~]# 
View Code

6、找出CPU占用最多的前10个进程

 1 [root@N37012 ~]# ps auxw|head -1;ps auxw|sort -rn -k3|head -10
 2 USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
 3 root      1197  0.2  1.3 612300 13284 ?        Sl   Apr25   7:17 barad_agent
 4 root       526  0.1  1.4 589732 14892 ?        Ssl  Apr25   4:30 /usr/local/qcloud/YunJing/YDEyes/YDService
 5 USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
 6 sshd     22610  0.0  0.2 112864  2228 ?        S    15:58   0:00 sshd: unknown [net]
 7 root       955  0.0  0.0 110088   632 ttyS0    Ss+  Apr25   0:00 /sbin/agetty --keep-baud 115200 38400 9600 ttyS0 vt220
 8 root       954  0.0  0.0 110088   640 tty1     Ss+  Apr25   0:00 /sbin/agetty --noclear tty1 linux
 9 root         9  0.0  0.0      0     0 ?        R    Apr25   0:09 [rcu_sched]
10 root       878  0.0  0.2 112796  2328 ?        Ss   Apr25   0:02 /usr/sbin/sshd -D
11 root       802  0.0  0.2 107380  2100 ?        Ss   Apr25   0:00 /sbin/dhclient -q -lf /var/lib/dhclient/dhclient--eth0.lease -pf /var/run/dhclient-eth0.pid -H N37012 eth0
12 root         8  0.0  0.0      0     0 ?        S    Apr25   0:00 [rcu_bh]
13 [root@N37012 ~]# 

7、crontab实现,在12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup

  crontab:用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

     基本格式 : 
    *  *  *  *  *  command 
    分 时 日 月 周 命令 
    第1列表示分钟1~59 每分钟用*或者 */1表示 
    第2列表示小时1~23(0表示0点) 
    第3列表示日期1~31 
    第4列表示月份1~12 
    第5列标识号星期0~6(0表示星期天) 
    第6列要运行的命令

    crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。
    crontab –l : 显示 crontab 文件。
    crontab -r : 删除 crontab 文件。
    crontab -ir : 删除 crontab 文件前提醒用户。

    举例:实现,在12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup

1 [root@N37012 ~]# crontab -e
2 crontab: installing new crontab
3 [root@N37012 ~]# crontab -l
4 0 6-12/3 * 12 * /usr/bin/backup.sh
5 [root@N37012 ~]# 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!