网络和进程管理命令及bash循环

netstat,dstat,route,nmcli,bash,until循环,while循环

osi七层模型和TCP/IP五层模型

应用层————————————–|——|

表示层————————————–|应用层|

会话层————————————–|——|

传输层————————————–传输层

网络层————————————–网络层

数据链路层———————————-数据链路层

物理层————————————–物理层

 

osi的七层参考模型中,应用层、表示层和会话层对应于TCP/IP模型中的应用层,其他层次都是一一对应,应用数据从源主机的应用层开始,从上往下层层封装。达到目的端之后再从物理层开始层层解封装,直到到达相关的应用层接口。

OSI参考模型和TCP/IP的对应关系和对应的网络协议如图所示:

QQ截图20180409213927

应用层:直接面向各种应用和服务,向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。

表示层:对数据进行格式化,进行代码转换,数据加密。

会话层:与其他对等层建立或解除连接。

传输层:提供端对端的接口,提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。

网络层:负责相邻计算机之间的通信。其功能包括三方面。

一、处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。

二、处理输入数据报:首先检查其合法性,然后进行寻径–假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。

三、处理路径、流控、拥塞等问题。

数据链路层:提供主机之间的二层通讯,传输有地址的帧,对帧进行CRC校验,并抽取其中的ip包发送给网络层。

物理层:将物理的电信号转化为bit流,并将bit流数据传递给二层。

iproute家族命令

iproute家族主要包括的命令有:ip,route,ifconfig,netstat,ss,ifup/ifdown,hostnamectl

ifconfig:用于接口地址查询和管理,在centos7上已经被ip命令取代,不过仍然可以使用

语法结构:ifconfig [option] [interface]

常用选项:

-a:显示所有的网络接口信息,包括状态是down的

-s:简要地显示网卡信息

-v:显示网络接口所接收到的数据包的错误信息

关闭/启动网卡:

ifconfig INTERFACE up

ifconfig INTERFACE down(ssh登录的慎用)

修改IP地址:

ifconfig  INTERFACE  IPADDRESS

ifconfig  INTERFACE  IPADDTESS netmask  NETMASK

ifconfig  INTERFACE  IPADDRESS netmask  NETMASK  broadcast BROADCAST

开启/关闭ARP协议:

ifconfig INTERFACE arp(开启)

ifconfig INTERFACE -arp(关闭)

设置最大传输单元(MTU):

ifconfig INTERFACE mtu MTU(不能小于1500)

 

route命令:

路由查看及管理

使用route命令之前需要先安装net-tools命令:yum install net-tools

语法结构:route [option] [argument]

常用选项:

-A:设置地址类型

-C:打印并将linux的路由缓存

-v:显示详细消息

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

-e:使用netstat格式显示路由表

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

-host:显示到一个主机的路由

常用参数:

add:增加指定路由

del:删除指定路由

target:目的网络或目的主机

gw:设置默认网关

mss:set the MTU of the route to Mb

window W:set the TCP window size for connection over this route to W bytes

dev IF :force the route to accociated with the specified device

示例:

(1)添加网关

route add -net 192.168.99.0 netmask 255.255.255.0 dev ens33

//增加一条去往192.168.99.0/24网络的路由

route add -net 192.168.99.0 netmask 255.255.255.0 reject

//屏蔽一条路由

(2)删除路由

route del -net 192.168.99.0 netmask 255.255.255.0 dev ens33

//删除去往192.168.99.0/24网络的路由

route del -net 192.168.99.0 netmask 255.255.255.0 reject

//删除这条屏蔽路由

route del default gw 192.168.99.1

route add default gw 192.168.99.1,添加的路由默认metric为零

QQ截图20180409215821

netstat:

显示网络连接状态,接口状态,路由表信息

语法结构:netstat [option]… | [grep] [PATTERN]

常用选项:

-a:显示所有选项,默认不显示LISTEN相关

-t:仅显示tcp相关选项

-u:仅显示udp选项

-n:仅显示数字类型的地址,而不显示主机名和用户名

-l:仅列出在listen状态的服务

-p:显示程序名

-r:显示路由信息,路由表

-e:显示扩展信息,-ee可以显示最多的信息

-s:按协议来进行统计显示

-c:每隔一个固定时间执行netstat命令

示例:

(1)显示所有端口

netstat -a

(2)显示所有TCP端口

netstat -at

(3)显示每个协议的统计信息

netstat -s

(4)显示pid和进程名称

netstat -p

(5)持续输出netstat信息

netstat -c

(6)显示路由信息

netstat -r

(7)找出特定程序信息

netstat -ap | grep ssh

ss命令:

可以用来获取socket的统计信息,类似于netstat,但能显示更详细的状态信息,比netstat更快捷高效。

nmcli:是centos7的网络管理命令工具

语法结构:nmcli [option] OBJECT {COMMAND | help}

示例:

(1)显示所有连接

nmcli con show;nmcli connection show

(2)显示所有活动连接

nmcli con show-active

(3)显示网络连接配置

nmcli con show “System ens33”

(4)显示设备状态

nmcli dev status

(5)显示网络接口属性

nmcli dev show ens33

(6)创建连接(默认使用dhcp)

nmcli con add con-name default type Ethernet ifname ens34

(7)删除连接

nmcli con del default,也可以直接删除配置文件

(8)创建静态连接(static)

nmcli con add con-name  static ifname ens34 autoconnect no type Ethernet ip4 192.168.99.103/24 gw4 192.168.99.254

dstat命令:

dstat是可以取代vmstat,iostat,netstat和ifstat的一个功能强大的多功能产品。

特性:

(1)结合了vmstat,iostat,ifstat,netstat以及更多的信息

(2)实时显示统计信息

(3)启用或对监控项进行排序

(4)模块化设计

(5)使用python编写,易于后续功能扩展

(6)包含许多扩展插件,更易于增加监控项目

(7)支持CSV格式报表,能够导入到excel形成图形

语法结构:dstat [option]

显示字段含义:

total-cpu-usage:cpu的使用率

dsk/total:磁盘的读写总数

net/total:网络设备接收和发送总数

paging:系统的分页活动,数值越大代表系统使用了大量的交换空间,或者说明内存很分散,一般来说0,0是比较希望看到的数值

system:中断(int)和上下文切换(csw),较大的数值代表系统有大量的进程拥塞。

常用选项:

-c:支持cpu性能指标相关的统计数据

-d:显示disk相关的速率数据

-g:显示page相关的速率数据

-i:显示interrupt相关的速率数据

-l:显示load avarge相关的速率数据

-m:显示memory相关的速率数据

-n:显示网络收发数据的速率

-p:显示进程相关的统计数据

-r:io请求速率

-s:显示swap相关数据

-y:显示系统相关的数据,包括中断和进程切换

 

–top-cpu:显示最占用cpu的进程

–top-io:显示最消耗io的进程

–top-io:显示最消耗block io的进程

–top-mem:显示最消耗内存的进程

–ipc:显示进程间通信相关的速率数据

–raw:显示raw套接的相关的数据

–tcp:显示tcp套接字相关的数据

–udp:显示udp套接字相关的数据

–unix:显示unix sock相关的统计数据

 

使用until和while分别实现192.168.0.0/24网段内,地址是否能够ping通,弱ping通则输出”success!”,若ping不通则输出”fail!”

(1)使用until循环自动测试网络

#!/bin/bash

network=192.169.0

declare -i option=1

until [ “$option” -gt 254 ]

do

ping -c 1 -w 1 ${network}.${option} &> /dev/null && result=0 || result=1

option=$option+1

if [ “$result” -eq 0 ]

then

echo -e “${network}.${option} is available”

else

echo -e “${network}.${option} is unavailable”

fi

done

(2)使用while循环自动测试网络

#!/bin/bash

network=192.168.99

declare -i option=1

while [ “$option” -lt 254 ]

do

ping -c 1 -w 1 ${network}.${option} &> /dev/null && result=0 || result=1

if [ “$result” -eq 0 ]

then

echo -e “${network}.${option} is available”

else

echo -e “${network}.${option} is unavailable”

fi

option+=1

done

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95614

发表评论

登录后才能评论

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班