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 ...

      举例:

 [root@N37012 ~]# ifconfig -v eth0
eth0: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 172.30.0.3 netmask 255.255.240.0 broadcast 172.30.15.255
ether ::::cd:5a txqueuelen (Ethernet)
RX packets bytes (340.2 MiB)
RX errors dropped overruns frame
TX packets bytes (70.9 MiB)
TX errors dropped overruns carrier collisions [root@N37012 ~]# ifconfig -a eth0
eth0: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 172.30.0.3 netmask 255.255.240.0 broadcast 172.30.15.255
ether ::::cd:5a txqueuelen (Ethernet)
RX packets bytes (340.2 MiB)
RX errors dropped overruns frame
TX packets bytes (71.0 MiB)
TX errors dropped overruns carrier collisions [root@N37012 ~]# ifconfig -s eth0
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 BMRU
[root@N37012 ~]# ifconfig
eth0: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 172.30.0.3 netmask 255.255.240.0 broadcast 172.30.15.255
ether ::::cd:5a txqueuelen (Ethernet)
RX packets bytes (340.2 MiB)
RX errors dropped overruns frame
TX packets bytes (71.0 MiB)
TX errors dropped overruns carrier collisions lo: flags=<UP,LOOPBACK,RUNNING> mtu
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen (Local Loopback)
RX packets bytes (272.0 B)
RX errors dropped overruns frame
TX packets bytes (272.0 B)
TX errors dropped overruns carrier collisions [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  192.168.2.1
PING 192.168.2.1 (192.168.2.1) () bytes of data.
bytes from 192.168.2.1: icmp_seq= ttl= time=0.439 ms
bytes from 192.168.2.1: icmp_seq= ttl= time=0.822 ms
bytes from 192.168.2.1: icmp_seq= ttl= time=0.699 ms
bytes from 192.168.2.1: icmp_seq= ttl= time=0.862 ms --- 192.168.2.1 ping statistics ---
packets transmitted, received, % 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:路由记录所表示的网络接口

      举例:

 [root@N37012 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 0.0.0.0 255.255.255.0 U ens33
192.168.2.0 0.0.0.0 255.255.255.0 U ens37
192.168.122.0 0.0.0.0 255.255.255.0 U virbr0
[root@N37012 ~]# route add default gw 192.168.2.1
[root@N37012 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.2.1 0.0.0.0 UG ens33
192.168.2.0 0.0.0.0 255.255.255.0 U ens33
192.168.2.0 0.0.0.0 255.255.255.0 U ens37
192.168.122.0 0.0.0.0 255.255.255.0 U virbr0
[root@N37012 ~]# route del default gw 192.168.2.1
[root@N37012 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 0.0.0.0 255.255.255.0 U ens33
192.168.2.0 0.0.0.0 255.255.255.0 U ens37
192.168.122.0 0.0.0.0 255.255.255.0 U virbr0
[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地址或主机名

        举例:

 [root@N37012 ~]# traceroute -I www.baidu.com
traceroute to www.baidu.com (180.97.33.107), hops max, byte packets
100.93.219.130 (100.93.219.130) 1.833 ms 2.866 ms 3.777 ms
100.93.247.230 (100.93.247.230) 1.136 ms 1.413 ms 1.811 ms
10.196.72.141 (10.196.72.141) 1.137 ms 1.562 ms 1.847 ms
10.196.5.109 (10.196.5.109) 6.966 ms 6.975 ms 7.286 ms
10.200.20.234 (10.200.20.234) 6.973 ms 6.984 ms 7.232 ms
10.196.0.78 (10.196.0.78) 7.260 ms 7.023 ms 7.016 ms
* * *
125.64.29.173 (125.64.29.173) 8.719 ms * *
182.140.220.17 (182.140.220.17) 7.763 ms 7.830 ms 7.814 ms
* * *
202.102.69.186 (202.102.69.186) 46.304 ms 45.148 ms 45.120 ms
* * *
180.97.32.6 (180.97.32.6) 109.534 ms 109.496 ms 71.308 ms
* * *
* * *
180.97.33.107 (180.97.33.107) 41.325 ms 41.346 ms 41.345 ms
[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”参数相同;

      举例:

 [root@N37012 ~]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp N37012:ssh 220.112.121.222: ESTABLISHED
tcp N37012: 169.254.0.55:lsi-bobcat ESTABLISHED
tcp N37012:ssh 220.112.121.222: ESTABLISHED
udp 0.0.0.0:bootpc 0.0.0.0:*
udp N37012:ntp 0.0.0.0:*
udp N37012:ntp 0.0.0.0:*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix [ ACC ] STREAM LISTENING /run/lvm/lvmpolld.socket
unix [ ACC ] STREAM LISTENING /run/dbus/system_bus_socket
unix [ ACC ] STREAM LISTENING /run/systemd/private
unix [ ] DGRAM /run/systemd/shutdownd
unix [ ACC ] SEQPACKET LISTENING /run/udev/control
unix [ ACC ] STREAM LISTENING /usr/local/yd.socket.server
unix [ ACC ] STREAM LISTENING /var/run/acpid.socket
unix [ ] STREAM CONNECTED /usr/local/yd.socket.client
unix [ ] DGRAM /run/systemd/notify
unix [ ] DGRAM /run/systemd/cgroups-agent
unix [ ACC ] STREAM LISTENING /run/systemd/journal/stdout
unix [ ACC ] STREAM LISTENING /var/run/lsm/ipc/simc
unix [ ] DGRAM /run/systemd/journal/socket
unix [ ACC ] STREAM LISTENING /var/run/lsm/ipc/sim
unix [ ] DGRAM /dev/log
unix [ ACC ] STREAM LISTENING /run/lvm/lvmetad.socket
unix [ ] DGRAM
unix [ ] DGRAM
unix [ ] DGRAM
unix [ ] DGRAM
unix [ ] STREAM CONNECTED /run/dbus/system_bus_socket
unix [ ] DGRAM
unix [ ] STREAM CONNECTED /run/systemd/journal/stdout
unix [ ] DGRAM
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED /run/systemd/journal/stdout
unix [ ] STREAM CONNECTED
unix [ ] DGRAM
unix [ ] STREAM CONNECTED
unix [ ] DGRAM
unix [ ] DGRAM
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED /usr/local/yd.socket.server
unix [ ] STREAM CONNECTED /run/systemd/journal/stdout
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED /run/systemd/journal/stdout
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED /run/dbus/system_bus_socket
unix [ ] DGRAM
unix [ ] DGRAM
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED /run/dbus/system_bus_socket
unix [ ] DGRAM
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED
unix [ ] DGRAM
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED /run/systemd/journal/stdout
unix [ ] STREAM CONNECTED /run/dbus/system_bus_socket
unix [ ] DGRAM
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED /run/systemd/journal/stdout
unix [ ] DGRAM
unix [ ] STREAM CONNECTED /run/systemd/journal/stdout
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED /run/systemd/journal/stdout
unix [ ] STREAM CONNECTED /run/systemd/journal/stdout
unix [ ] DGRAM
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED
[root@N37012 ~]# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp N37012:ssh 220.112.121.222: ESTABLISHED
tcp N37012: 169.254.0.55:lsi-bobcat ESTABLISHED
tcp N37012:ssh 220.112.121.222: ESTABLISHED
[root@N37012 ~]# netstat -au
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0.0.0.0:bootpc 0.0.0.0:*
udp N37012:ntp 0.0.0.0:*
udp N37012:ntp 0.0.0.0:*
[root@N37012 ~]#

    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

          举例:

 [root@N37012 ~]# ss -t -a        #列出所有tcp sockets
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN *:ssh *:*
ESTAB 172.30.0.3:ssh 220.112.121.222:
ESTAB 172.30.0.3: 169.254.0.55:lsi-bobcat
ESTAB 172.30.0.3:ssh 220.112.121.222:
[root@N37012 ~]# ss -o state all '( dport = :ntp or sport = ntp )'    #列出所有ntp连接
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 172.30.0.3:ntp *:*
udp UNCONN 127.0.0.1:ntp *:*
[root@N37012 ~]# ss -o state established '( dport = :http or sport = :http )'    #列所有的tcp sockets
Netid Recv-Q Send-Q Local Address:Port Peer Address:Port
[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/ 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) () bytes of data.
bytes from 192.168.2.2: icmp_seq= ttl= time=0.057 ms
bytes from 192.168.2.2: icmp_seq= ttl= time=0.044 ms
^C
--- 192.168.2.2 ping statistics ---
packets transmitted, received, % 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;输出更多详细信息

        举例:

 [root@N37012 ~]# iostat -d -k          #查看TPS和吞吐量信息,没1秒刷新一次,查看3次
Linux 3.10.-.el7.x86_64 (N37012) // _x86_64_ ( CPU) Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 3.86 9.79 36.58
scd0 0.00 0.01 0.00 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 0.00 0.00 0.00
scd0 0.00 0.00 0.00 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 0.00 0.00 0.00
scd0 0.00 0.00 0.00 [root@N37012 ~]# iostat -d -x -k #查看设备使用率和响应时间
Linux 3.10.-.el7.x86_64 (N37012) // _x86_64_ ( 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 1.65 0.43 3.44 9.79 36.58 24.00 0.03 8.33 2.36 9.07 0.74 0.29
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 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 4.04 0.00 22.22 0.00 105.05 9.45 0.07 3.14 0.00 3.14 0.27 0.61
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 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.00 0.00 1.01 0.00 4.04 8.00 0.00 3.00 0.00 3.00 3.00 0.30
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 [root@N37012 ~]# iostat -c #查看CPU状态
Linux 3.10.-.el7.x86_64 (N37012) // _x86_64_ ( CPU) avg-cpu: %user %nice %system %iowait %steal %idle
0.55 0.00 0.37 0.18 0.00 98.89 avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00 avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00 [root@N37012 ~]# iostat -d -d
Linux 3.10.-.el7.x86_64 (N37012) // _x86_64_ ( CPU) Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 3.86 9.79 36.58
scd0 0.00 0.01 0.00 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 0.00 0.00 0.00
scd0 0.00 0.00 0.00 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 2.00 0.00 48.00
scd0 0.00 0.00 0.00 [root@N37012 ~]# iostat -x -k
Linux 3.10.-.el7.x86_64 (N37012) // _x86_64_ ( CPU) avg-cpu: %user %nice %system %iowait %steal %idle
0.55 0.00 0.37 0.18 0.00 98.89 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 1.65 0.43 3.44 9.79 36.57 24.00 0.03 8.33 2.36 9.07 0.74 0.29
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 avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00 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.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
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 avg-cpu: %user %nice %system %iowait %steal %idle
1.00 0.00 2.00 1.00 0.00 96.00 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 1.00 0.00 84.00 0.00 368.00 8.76 0.51 6.06 0.00 6.06 0.14 1.20
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 [root@N37012 ~]#

  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版本信息。

      举例:

 [root@N37012 ~]# vmstat -a
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st [root@N37012 ~]# vmstat -f
forks
[root@N37012 ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
vda
sr0
loop0
[root@N37012 ~]# vmstat -m
Cache Num Total Size Pages
SCTPv6
SCTP
isofs_inode_cache
ext4_groupinfo_4k
ext4_inode_cache
ext4_xattr
ext4_free_data
ext4_allocation_context
ext4_io_end
ext4_extent_status
jbd2_journal_handle
jbd2_journal_head
jbd2_revoke_table_s
jbd2_revoke_record_s
ip6_dst_cache
RAWv6
UDPLITEv6
UDPv6
tw_sock_TCPv6
TCPv6
cfq_queue
bsg_cmd
mqueue_inode_cache
hugetlbfs_inode_cache
configfs_dir_cache
dquot
userfaultfd_ctx_cache
fanotify_event_info
pid_namespace
Cache Num Total Size Pages
posix_timers_cache
UDP-Lite
flow_cache
xfrm_dst_cache
UDP
tw_sock_TCP
TCP
dax_cache
blkdev_queue
blkdev_ioc
user_namespace
dmaengine-unmap-
sock_inode_cache
fsnotify_mark_connector
net_namespace
shmem_inode_cache
Acpi-ParseExt
Acpi-State
task_delay_info
taskstats
proc_inode_cache
sigqueue
bdev_cache
kernfs_node_cache
mnt_cache
inode_cache
dentry
iint_cache
selinux_inode_security
Cache Num Total Size Pages
buffer_head
vm_area_struct
mm_struct
files_cache
signal_cache
sighand_cache
task_xstate
task_struct
anon_vma
shared_policy_node
numa_policy
radix_tree_node
idr_layer_cache
dma-kmalloc-
dma-kmalloc-
dma-kmalloc-
dma-kmalloc-
dma-kmalloc-
dma-kmalloc-
dma-kmalloc-
dma-kmalloc-
dma-kmalloc-
dma-kmalloc-
dma-kmalloc-
dma-kmalloc-
dma-kmalloc-
kmalloc-
kmalloc-
kmalloc-
Cache Num Total Size Pages
kmalloc-
kmalloc-
kmalloc-
kmalloc-
kmalloc-
kmalloc-
kmalloc-
kmalloc-
kmalloc-
kmalloc-
kmem_cache_node
kmem_cache
[root@N37012 ~]#

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

 [root@N37012 ~]# ps auxw|head -;ps auxw|sort -rn -k3|head -
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 0.2 1.3 ? Sl Apr25 : barad_agent
root 0.1 1.4 ? Ssl Apr25 : /usr/local/qcloud/YunJing/YDEyes/YDService
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
sshd 0.0 0.2 ? S : : sshd: unknown [net]
root 0.0 0.0 ttyS0 Ss+ Apr25 : /sbin/agetty --keep-baud ttyS0 vt220
root 0.0 0.0 tty1 Ss+ Apr25 : /sbin/agetty --noclear tty1 linux
root 0.0 0.0 ? R Apr25 : [rcu_sched]
root 0.0 0.2 ? Ss Apr25 : /usr/sbin/sshd -D
root 0.0 0.2 ? Ss Apr25 : /sbin/dhclient -q -lf /var/lib/dhclient/dhclient--eth0.lease -pf /var/run/dhclient-eth0.pid -H N37012 eth0
root 0.0 0.0 ? S Apr25 : [rcu_bh]
[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

 [root@N37012 ~]# crontab -e
crontab: installing new crontab
[root@N37012 ~]# crontab -l
-/ * * /usr/bin/backup.sh
[root@N37012 ~]#

Linux入门-第六周的更多相关文章

  1. Linux分析第六周——进程的描述和进程的创建

    Linux分析第六周--进程的描述和进程的创建 李雪琦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/US ...

  2. 20135302魏静静——linux课程第六周实验及总结

    linux课程第六周实验及总结 实验及学习总结 1.进程描述符task_struct数据结构 进程的作用: 将信号.进程间通信.内存管理和文件系统联系起来 操作系统的三大功能: 进程管理.内存管理.文 ...

  3. linux入门教程(六) Linux文件与目录管理

    在linux中什么是一个文件的路径呢,说白了就是这个文件存在的地方,例如在上一章提到的/root/.ssh/authorized_keys 这就是一个文件的路径.如果你告诉系统这个文件的路径,那么系统 ...

  4. Linux入门基础(六):Linux系统启动

    系统启动流程 BIOS MBR : Boot Code 执行引导程序-GRUB 加载内核 执行init runlevel BIOS BIOS(basic input output system),我们 ...

  5. Linux入门-第五周

    1.磁盘lvm管理,完成下面要求,并写出详细过程: 1) 创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv; ...

  6. Linux入门-第三周

    1.总结vim命令行模式常见快捷方式,以及vim查找,替换的方法 vim [options] [file ..] +# 打开文件后,让光标处于第#行的行首,(默认行尾) 举例vim +10 /etc/ ...

  7. Linux入门(六)ubuntu下vim编辑器安装与使用

    原文链接:http://jingyan.baidu.com/article/219f4bf7d03187de452d3862.html 一.安装 vim 控制台版本的vim随ubuntu一起发行,因此 ...

  8. Linux入门-第八周

    1.用shell脚本实现自动登录机器 #!/usr/bin/expectset ip 192.168.2.192set user rootset password rootspawn ssh $use ...

  9. Linux入门-第七周

    1.编写脚本实现传入进程PID,查看对应进程/proc下CPU.内存指标. #!/bin/bash read -p "Input PID Value: " pid #读取PID进程 ...

随机推荐

  1. ASTreeView Demo:Add, Edit & Delete nodes

    http://www.jinweijie.com/ http://www.astreeview.com/astreeviewdemo/astreeviewdemo1.aspx 選擇節點: <sc ...

  2. 1729 单词查找树 2000年NOI全国竞赛

    1729 单词查找树 2000年NOI全国竞赛 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 大师 Master         题目描述 Description 在进行文法分析的 ...

  3. 又到圣诞节,让你的网页下起雪(js特效)

    又到圣诞节,让你的网页下起雪(js特效) 在4年多前,我写过一个特效,就是让你的网页下起雨,它的效果就是在你打开的网站,雨点下满你的屏幕,恩,大概效果如下图: 当然这个效果还有一些附带项,比如风速.风 ...

  4. Ubuntu真机安装

    Ubuntu真机安装 1.Ubuntu安装: (1)启动盘制作: a.下载启动盘制作工具Universal USB Installe,下载地址: b.下载Ubuntu系统镜像,到本地磁盘,官方下载地址 ...

  5. 【转】dB的计算方法

    原文地址:https://www.espressif.com/zh-hans/media/blog/%E5%A2%9E%E7%9B%8A%E6%AF%94%E5%80%BC-db-%E4%BB%A5% ...

  6. SQL Server 2012安装配置(Part2 )

    2 服务器安装 运行安装程序后,首先进入 SQL Server 安装中心.选择左侧导航树中的"安装"菜单项. 图2-1 SQL Server 安装中心 在右侧菜单中点击" ...

  7. 扫描FTP,保存文件

    1.需求:某公司ftp服务器中一个文件夹中有30个文件(文件名字是不同的),每五分钟产生一个新的文件,同时删除这三十个文件中最早产生的文件,该文件夹中始终保持30个文件. 现在需要采集一周的数据做研究 ...

  8. python操作oracle小测试

    首先使用python操作数据库需要导入cx_Oracle包import cx_Oracle这个包需要单独下载,下载地址:https://pypi.python.org/pypi/cx_Oracle使用 ...

  9. delphi7 打开project/options 出错

    出错提示:Access violation at address 0012F88F. Write of address 0012F88F.然后又提示一条:Access violation at add ...

  10. MyEclipse2015Stable3.0破解方法

    原理大概是这样的(个人粗略分析):获取当前的日期,来设置证书失效日期,解析后生成码-->再转码,最后生成序列号. 1.新建一个Java工程,(不会安装jdk创建环境变量的,请前往传送门:链接.) ...