zoukankan      html  css  js  c++  java
  • Linux入门-第六周

    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 ~]# 
  • 相关阅读:
    python 代码片段17
    python 代码片段15
    python 代码片段14
    python 代码片段13
    python 代码片段12
    RBAC模型
    2、服务注册与发现-电影服务
    1、通过eureka创建注册中心
    prop与attr
    位运算,效率高
  • 原文地址:https://www.cnblogs.com/061713xlhj/p/10771622.html
Copyright © 2011-2022 走看看