标签:获取 nod lis any recv 最大的 帮助 value 主机
OSI 七层模型
OSI(Open System Interconnection Reference Model,开放系统互连参考模型)体系结构是第一个标准化的计算机网络体系,它是针对广域网(也就是不同网络之间的通信)进行设计的,将整个网络通信的功能划分为七个层次,由低到高分别为物理层(Physical Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)、应用层(Application Layer)
OSI七层模型中低四层(从物理层到传输层)定义了如何进行端到端的数据传输,也就是定义了如何通过网卡、物理电缆、交换机和路由器进行数据传输;而高三层(从会话层到应用层)定义了终端系统的应用程序和用户如何彼此通信,也即定义了如何重建从发送方到目的方的应用程序数据流。更多的是把OSI的七层结构分为低三层和高三层的,低三层负责创建网络通信所需的网络连接(面向网络),属于“通信子网”部分,高四层具体负责端到端的用户数据通信(面向用户),属于“资源子网”部分。OSI结构中各层功能如下图:
TCP/IP 五层模型
TCP/IP协议体系结构(又称TCP/IP协议参考模型)是专门针对使用TCP/IP协议簇的广域计算机网络而开发的,可以说是OSI的改进版本。但绝不能简单地认为是改进版,因为它与OSI参考模型所针对的网络类型存在较大区别,所以这两种体系结构中各层所采用的通信协议,以及功能实现原理上都存在非常大的差异。
TCP/IP协议体系结构只划分了四层,从高到低分别是:应用层(Apllication Layer)、传输层(Transport Layer)、网际互连层(Internet Layer,又称互联网层)和网络访问层(Network Access Layer,又称网络接入层、网络接口层或者主机-网络层)。总体而言,TCP/IP协议体系结构更加精简,更有利于网络系统的设计,但是其中网络访问层本身并不是实际的一层,包括了OSI的物理层和数据链路层这两层的功能,把它们合并其实并不合理,所以推出TCP/IP五层网络体系结构,它是最为科学以及合理的,它综合了OSI七层模型和TCP/IP四层模型这两种体系结构的优点,同时克服了这两种体系结构的不足,如下图所示:
iproute家族:
show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route | netns }
注意: OBJECT可简写,各OBJECT的子命令也可简写;
```
ip OBJECT:
ip link: network device configuration
ip link set - change device attributes
dev NAME (default):指明要管理的设备,dev关键字可省略;
up和down:
multicast on或multicast off:启用或禁用多播功能;
name NAME:重命名接口
mtu NUMBER:设置MTU的大小,默认为1500;
netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;
ip link show - display device attributes
ip link help - 显示简要使用帮助;
ip netns: - manage network namespaces.
ip netns list:列出所有的netns
ip netns add NAME:创建指定的netns
ip netns del NAME:删除指定的netns
ip netns exec NAME COMMAND:在指定的netns中运行命令
ip address - protocol address management.
ip address add - add new protocol address
ip addr add IFADDR dev IFACE
[label NAME]:为额外添加的地址指明接口别名;
[broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到;
[scope SCOPE_VALUE]:
global:全局可用;
link:接口可用;
host:仅本机可用;
ip address delete - delete protocol address
ip addr delete IFADDR dev IFACE
ip address show - look at protocol addresses
ip addr list [IFACE]:显示接口的地址;
ip address flush - flush protocol addresses
ip addr flush dev IFACE
ip route - routing table management
ip route add - add new route
ip route change - change route
ip route replace - change or add new one
ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]
ip route delete - delete route
ip route del TYPE PRIFIX
ip route show - list routes
TYPE PRIFIX
ip route flush - flush routing tables
TYPE PRIFIX
ip route get - get a single route
ip route get TYPE PRIFIX
ss [options] [ FILTER ]
选项:
-t:TCP协议的相关连接
-u:UDP相关的连接
-w:raw socket相关的连接
-l:监听状态的连接
-a:所有状态的连接
-n:数字格式
-p:相关的程序及其PID
-e:扩展格式信息
-m:内存用量
-o:计时器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
示例:
[root@node1 ~]# ss -tan ‘( dport = :22 or sport = :22 )‘
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
ESTAB 0 0 192.168.10.10:22 192.168.10.1:50779
ESTAB 0 0 192.168.10.10:22 192.168.10.1:54761
LISTEN 0 128 :::22 :::*
[root@node1 ~]# ss -tan state ESTABLISHED
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 52 192.168.10.10:22 192.168.10.1:50779
0 0 192.168.10.10:22 192.168.10.1:54761
配置文件:
IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
IFACE:接口名称;
路由的相关配置文件:/etc/sysconfig/networkj-scripts/route-IFACE
配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE通过大量参数来定义接口的属性;其可通过vim等文本编辑器直接修改,也可以使用专用的命令的进行修改(CentOS 6:system-config-network (setup),CentOS 7: nmtui)
ifcfg-IFACE配置文件参数:
DEVICE:此配置文件对应的设备的名称;
ONBOOT:在系统引导过程中,是否激活此接口;
UUID:此设备的惟一标识;
IPV6INIT:是否初始化IPv6;
BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none;
TYPE:接口类型,常见的有Ethernet, Bridge;
DNS1:第一DNS服务器指向;
DNS2:备用DNS服务器指向;
DOMAIN:DNS搜索域;
IPADDR: IP地址;
NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码;
GATEWAY:默认网关;
USERCTL:是否允许普通用户控制此设备;
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向;默认为允许;
HWADDR:设备的MAC地址;
NM_CONTROLLED:是否使用NetworkManager服务来控制接口;
网络服务:
network
NetworkManager
管理网络服务:
CentOS 6: service SERVICE {start|stop|restart|status}
CentOS 7:systemctl {start|stop|restart|status} SERVICE[.service]
配置文件修改之后,如果要生效,需要重启网络服务;
CentOS 6:# service network restart
CentOS 7:# systemctl restart network.service
用到非默认网关路由:/etc/sysconfig/network-scripts/route-IFACE
支持两种配置方式,但不可混用;
(1) 每行一个路由条目:
TARGET via GW
(2) 每三行一个路由条目:
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
给接口配置多个地址:
ip addr之外,ifconfig或配置文件都可以;
(1) ifconfig IFACE_LABEL IPADDR/NETMASK
IFACE_LABEL: eth0:0, eth0:1, ...
(2) 为别名添加配置文件;
DEVICE=IFACE_LABEL
BOOTPROTO:网上别名不支持动态获取地址;
static, none
nmcli命令:
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
COMMAND := { status | show | connect | disconnect | delete | wifi | wimax }
connection - start, stop, and manage network connections
COMMAND := { show | up | down | add | edit | modify | delete | reload | load }
modify [ id | uuid | path ] <ID> [+|-]<setting>.<property> <value>
如何修改IP地址等属性:
# nmcli conn modify IFACE [+|-]setting.property value
ipv4.address
ipv4.gateway
ipv4.dns1
ipv4.method
htop命令:
选项:
-d #:指定延迟时间间隔;
-u UserName:仅显示指定用户的进程;
-s COLUME:以指定字段进行排序;
子命令:
l:显示选定的进程打开的文件列表;
s:跟踪选定的进程的系统调用;
t:以层级关系显示各进程状态;
a:将选定的进程绑定至某指定的CPU核心;
vmstat命令:
选项:
-s:显示内存统计数据;
示例:
[root@node1 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 855264 2108 257940 0 0 80 17 66 67 0 0 99 1 0
[root@node1 ~]# vmstat -s
1237288 K total memory
122208 K used memory
161724 K active memory
101396 K inactive memory
855000 K free memory
2108 K buffer memory
257972 K swap cache
2097148 K total swap
0 K used swap
2097148 K free swap
280 non-nice user cpu ticks
0 nice user cpu ticks
633 system cpu ticks
239275 idle cpu ticks
1606 IO-wait cpu ticks
0 IRQ cpu ticks
38 softirq cpu ticks
0 stolen cpu ticks
190868 pages paged in
40644 pages paged out
0 pages swapped in
0 pages swapped out
156772 interrupts
161220 CPU context switches
1537771118 boot time
2113 forks
pmap命令:
report memory map of a process
pmap [options] pid [...]
-x:显示详细格式的信息;
另一种查看方式:cat /proc/PID/maps
glances命令:
glances –1
dstat命令:
- versatile tool for generating system resource statistics
dstat [-afv] [options..] [delay [count]]
常用选项:
-c, --cpu:显示cpu相关信息;
-C #,#,...,total
-d, --disk:显示磁盘的相关信息
-D sda,sdb,...,tobal
-g:显示page相关的速率数据;
-m:Memory的相关统计数据
-n:Interface的相关统计数据;
-p:显示process的相关统计数据;
-r:显示io请求的相关的统计数据;
-s:显示swapped的相关统计数据;
--tcp
--udp
--raw
--socket
--ipc
--top-cpu:显示最占用CPU的进程;
--top-io:最占用io的进程;
--top-mem:最占用内存的进程;
--top-lantency:延迟最大的进程;
示例:
[root@node1 ~]# dstat
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
0 0 99 0 0 0| 70k 202k| 0 0 | 0 0 | 116 104
0 0 100 0 0 0| 0 0 | 60B 890B| 0 0 | 98 90
1 0 100 0 0 0| 0 0 | 120B 422B| 0 0 | 86 75
0 0 100 0 0 0| 0 0 | 60B 362B| 0 0 | 106 97
0 0 100 0 0 0| 0 0 | 60B 362B| 0 0 | 92 85
0 0 100 0 0 0| 0 0 | 60B 362B| 0 0 | 100 95
0 0 100 0 0 0| 0 0 | 60B 362B| 0 0 | 85 78
0 0 100 0 0 0| 0 0 | 60B 362B| 0 0 | 86 83
0 0 100 0 0 0| 0 0 | 60B 362B| 0 0 | 81 73
0 0 100 0 0 0| 0 0 | 60B 362B| 0 0 | 97 90
0 0 100 0 0 0| 0 0 | 60B 362B| 0 0 | 83 75
0 0 100 0 0 0| 0 0 | 60B 362B| 0 0 | 85 80
0 0 100 0 0 0| 0 0 | 60B 362B| 0 0 | 85 77
0 0 100 0 0 0| 0 0 | 60B 362B| 0 0 | 97 91
0 0 100 0 0 0| 0 1488k| 60B 362B| 0 0 | 109 83
0 0 100 0 0 0| 0 0 | 60B 362B| 0 0 | 85 78
0 0 100 0 0 0| 0 0
kill命令:
terminate a process
用于向进程发送信号,以实现对进程的管理;
显示当前系统可用信号:
kill -l [signal]
每个信号的标识方法有三种:
1) 信号的数字标识;
2) 信号的完整名称;
3) 信号的简写名称;
向进程发信号:
kill [-s signal|-SIGNAL] pid...
常用信号:
1) SIGHUP:无须关闭进程而让其重读配置文件;
2)SIGINT:终止正在运行的进程,相当于Ctrl+c
9)SIGKILL:杀死运行中的进程;
15)SIGTERM:终止运行中的进程;
18)SIGCONT:
19)SIGSTOP:
killall命令:
While 语句
[root@node1 ~]# cat while.sh
#!/bin/bash
#
declare -i i=1
while [ $i -le 254 ];do
if ping -W 1 -c 1 192.168.0.$1 &> /dev/null;then
echo "host 192.168.0.$1 is alive."
else
echo "host 192.168.0.$1 is down."
fi
let i++
done
[root@node1 ~]# bash while.sh
host 192.168.0. is down.
host 192.168.0. is down.
host 192.168.0. is down.
host 192.168.0. is down.
host 192.168.0. is down.
Until 语句
[root@node1 ~]# cat until.sh
#!/bin/bash
#
declare -i i=1
until [ $i -gt 254 ];do
if ping -W 1 -c 1 192.168.0.$1 &> /dev/null;then
echo "host 192.168.0.$1 is alive."
else
echo "host 192.168.0.$1 is down."
fi
let i++
done
[root@node1 ~]# bash until.sh
host 192.168.0. is down.
host 192.168.0. is down.
host 192.168.0. is down.
标签:获取 nod lis any recv 最大的 帮助 value 主机
原文地址:http://blog.51cto.com/13929964/2282657