1、简述osi七层模型和TCP/IP五层模型
应用层
运行着应用程序的协议http、ftp、tftp等
表示层
将应用层所编辑的数据进行加密或解密,没有协议
会话层
决定一次数据传输发起和接收会话请求,没有协议
传输层
根据选着的协议类型,决定是否将数据分割或重组,协议:tcp、udp等
网络层
编辑逻辑地址信息(原站点、目的站点)和路由选着(ARP)协议:ip等
数据链路层
进行物理寻址、将数据转化为帧或解析,协议:PPP等
物理层
用于规定机械的、电器的、功能和过程的特性进行bit传输。协议:ieee 802.1a等
2、简述iproute家族命令
iproute 家族命令
iproute 是一组网络管理命令的集合,其中有ip、route、ss、等等
ip 命令
用来显示操作路由、设备、策略路由和隧道的状态
用法简介:
ip [ OPTIONS ] OBJECT { COMMAND | help }
常用 OBJECT 命令:
- link
- address
- route
- netns
link 常用子命令:
管理网络设配配置
- ip link set { DEVICE | dev DEVICE | } { COMMAND } 设置网络配置
- dev NAME(default): 指明要管理的设备,dev可省略
- up | down:启用或禁用设备
- multicast on | multicast off:启用或禁用组播
- name NAME:设置接口名 【需要先停用设备】
- mtu NUMBER: 修改mtu默认值,
- netns PID | namespace:把接口移动到指定的网络名称空间。
- ip link show [ dev DEVICE ] : 查看二级设备属性
- ip link help : 显示简要使用说明
netns 常用子命令:
管理网路的命令空间
- ip netns { COMMAND | help }
- list: 列出所有的网络命令空间
- add NAME: 创建指定的网络命令空间
- del NAME: 删除指定的网络命令空间
- exec NAME COMMAND: 在指定的网络命令空间中运行命令
address 常用子命令:
管理网络协议端口,
- ip addr add IFADDR dev IFACE [ LIFETIME ] [ CONFFLAG-LIST ]
- [label NAME]:为额外添加的地址指明接口别名。
- [broadcast ADDRESS]: 广播地址,会根据ip 和 NETMASK自动计算得到。
- [scope SCOPE_VALUE]
- global:全局可用,可ping通
- link:接口可用,自己可ping
- host:仅本机可用,不可被ping
- ip address delete 删除网络协议地址
- ip address show 显示接口协议地址
- ip address flush 清空网络协议地址
route 常用子命令:
管理路由表
- ip route { COMMAND }
- add TYPE PREFIX via GW [dev_IFACE] [src_SOURCE_IP]: 添加路由
- change :修改路由
- replace :存在则替换否则添加一个新的
- delete TYPE PRIFIX :删除路由
- show [ TYPE PRIFIX ]:显示路由地址
- flush TYPE PRIFIX:清除路由表
- get TYPE PRIFIX : 获取指定路由状态
ss 命令
用来过滤显示 套接字的相关工具
ss [options] [FILTER]
常用选项:
- -t:TCP协议的相关连接
- -u:UDP相关的连接
- -w:raw socket相关的连接 (裸套接字)
- -l:监听状态的连接
- -a:所有状态的连接
- -p:相关的程序及其PID
- -e:扩展格式信息
- -m:内存用量
- -o:计时器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ] 只看某种状态的连接 额外的表达式 TCP的常见状态: TCP FSM:LISTEN:监听状态 ESTABLISEHD:已建立的连接, FIN_WAIT_1:等待结束的 FIN_WAIT_2:确认结束的 SYN_SENT:已经结束 SYN_RECV: * CLOSED:
EXPRESSION: dport = sport = 目标端口 源端口
3、详细说明进行管理工具htop、vmstat等相关命令,并举例
htop 命令
交互式的进程查看器,特点是可定制显示标题及鼠标操作
常用选项:
- -d #:指定延时间隔。
- -u userNAME: 仅显示指定用户的数据。
- -s COLUME: 以指定字段进行排序。
操作界面子命令:
- l:显示选定的进程打开的文件列表
- s:跟着选定的今晨的系统调用
- t:以层级关系显示各进程状态
- a:将选定的进程绑定至某指定的cpu核心
界面:
左栏显示:
- CPU:使用百分比
- sys:内核使用百分比
- Mem:内存总量
- used:用户内存使用容量
- buffers: 内存缓存的缓冲空间
右栏显示:
- Tasks: 进程数
- runing: 运行中的程序数
- Load acerage:平均负载
- Uptime:系统启动的累计时间
表显示:
- USER: 进程所占用用户空间百分比
- PID: 进程号
- PRI: 进程优先级
- NI: nice进程的优先级
- VIRT: 进程占用的虚拟内存
- RES: 进程占用的物理内存
- SHR: 进程占用的共享内存
- PPTID: 此进程的父进程号
- S: 进程的运行状况
- R:运行中
- S:休眠中
- z:僵尸进程
- CPU%: 进程的cpu占用百分比
- MEM%: 进程的内存占用百分比
- TIME+: 进程开启的累计时间
- Command: 运行的进程
快捷键解释:
F1: help 帮助文件
F1 ? h:查看帮助文件 F2 S: 自定义查看界面 F3 |/: 增量查询 F4 |\: 增量查询并且只显示查询到的内容 F5 |t: 树状显示层级关系 F6 + -: 选着排序方式 F7 |]: 减小进程优先级 F8 |[: 增加进程优先级 F9 |k:杀死选定的进程 F10 |q : 退出 u:只显示指定用户的进程 U:取消标记所有的进程H:显示或隐藏用户进程 K:显示或隐藏用户线程 F:跟踪进程 P:按CPU使用排序 M:按内存使用排序 T:按开启累计时间排序 i:显示进程打开的文件 I:倒转排序顺序 * s:跟中选中的进程的系统调用
F2: 设置
- Setup:设定选项
- Meters:表
- left column:左栏显示内容
- Right column:右栏显示内容
- Available meters:可选用表
Meters:调整可使用的表
可用快捷键: Enter:首次点击为选定,再次点击放置 UP:向上移动 Dn:向下移动 Lt:向左移动 Rt:向右移动 Space:切换显示模式 [ ] Del:删除表 Esc:完成并返回主界面
Display options:显示选项
- [x]:启用
- [ ]: 禁用
可用快捷键: space:启用或禁用 UP:向上移动 Dn:向下移动 Lt:向左移动 Rt:向右移动 鼠标点击启用或禁用 * Esc:完成并返回主界面
Colors:修改主题颜色
- [x]:启用
- [ ]: 禁用
可用快捷键: space:启用或禁用 UP:向上移动 Dn:向下移动 Lt:向左移动 Rt:向右移动 鼠标点击启用或禁用 * Esc:完成并返回主界面
Columns:自定显示栏
设定后的效果
可用快捷键: Enter:在可用表栏点击可直接添加, UP 或 F7:向上移动 Dn 或 F8:向下移动 Del 或 F9 :删除表 * Esc:完成并返回主界面
F3 进行条件查询
vmstat 命令
报告虚拟内存的统计数据
语法格式:
vmstat [OPTIONS] [delay[count]]
常用选项:
-s:显示内存的统计数据:
- procs:
- r:等待运行的进程的个数;CPU上等待运行的任务的队列长度;
- b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度;
- memory:
- swpd:交换内存使用总量;(生产环境中尽量不使用虚拟内存,会拖慢速度)
- free:空闲的物理内存总量;
- buffer:用于buffer的内存总量;buffer缓冲
- cache:用于cache的内存总量;
- swap
- si:数据进入swap中的数据速率(kb/s)(一般都是从物理内存换入的)
- so:数据离开swap的速率(kb/s) (一般都是从物理内存换出的)
- io
- bi:从块设备(硬盘)读入数据到系统的速度(kb/s)
- bo:保存数据至块设备的速率(kb/s)
- system
- in:interrupts,中断速率;
- cs:context switch, 上下文 切换的速率;
- cpu
- us: user space 用户空间占用百分比
- sy:system 运行内核所占用的百分比u
- id:idle 空闲的
- wa:wait 等待io完成的
- st: stolen 被虚拟化偷走的时间
示例:每2秒更新一次数据
示例:vmtat -s 详情模式显示
pmap 命令
通过抽取cat /proc/PID/maps用来显示内存映射表
语法格式:
pmap [options] pid […]
常用选项:
-x:显示详细格式的信息
示例: -x
示例:cat /proc/2555/maps
glances 命令
基于cross平台研发的夸平台监控工具,系统内并未携带此款软件需要进行下载
安装包下载地址:www.psgk.org
依次下载并安装 如果不需要将信息保存为HTML格式文件可以忽略1、2、
1、python-babel-0.9.4-5.1.el6.noarch.rpm
2、python-jinja2-2.2.1-3.el6.x86_64.rpm
3、 python-psutil-0.6.1-1.el6.x86_64.rpm
4、python-setuptools-0.6.10-3.el6.noarch.rpm
5、glances-1.7.4-1.el6.noarch.rpm
分栏内容解释: 首航显示:计算机名,系统版本及本和版本,启动累计时间
CPU:cpu使用统计 user:用户占用cpu百分比 system:内核占用cpu百分比 idle:可用用空闲的cpu百分比 nice:优先级占用cpu百分比
LOAD: 核心平均负载 1 min:1分走 5 min:5分钟 * 15 min:15分钟
MEM:物理内存统计 total: 物理内存总量 used: 用户进程已使用多少 free:可用空闲容量 buffers:被虚拟化偷走的
SWAP:虚拟内存统计 total:虚拟内存总量 used:用户虚拟内存使用 * free:空闲可使用的
NETWORK:网络端口状态 Rx/s:每秒接收的数据包 Tx/s:每秒发送的数据包
DISK I/O:磁盘状态 R/s: 每秒读取 W/s: 每秒写入
FILE SYS:文件暂用磁盘信息 Used:用户以使用容量 total:总的磁盘量
TASKS:进程详细统计信息 CPU%:cpu占用百分比 MEM%:内存占用百分比 VIRT:虚拟内存 RES:进程占用的物理内存PID:进程号 USER:启用进程的用户 NI:优先级 S:进程状态 S: 休眠中 R: 运行中 Z:僵死的 TIME+:进程累计启动时间IOW/s:进程的读、写 Command:运行此进程的命令
查看时还可使用常用选项停止指定信息刷新或将此时的运行装抽象成文件形式进行保存。
- -b:以Byte为单位显示网上数据速率;
- -d:关闭磁盘I/O模块;
- -m:关闭mount模块;
- -n:关闭network模块;
- -t #:刷新时间间隔;修改延时
- -1:每个cpu的相关数据单独显示;
- -o {HTML|CSV}:输出格式; 可使用浏览器查看 centos 7 只有CSV格式
- -f /PATH/TO/SOMEDIR:设定输出文件的位置;
禁用选项: -b -d -m -n -t 1
[root@MiWiFi-R3-srv glances]# glances -b -d -m -n -t 1
C/S模式使用glance 远程监控服务器系统时:注意版本需要兼容才可以。
1、首先在服务器打开模式: glances -s -B IPADDR
2、客户端模式: glances -c IPADDR
dstat 命令
非常精巧的生成系统统计数据的工具,使用命令可以独立的查看指定设备的信息。
dstat [-afv] [options..] [delay [COUNT]]
可使用yum install dstat -y 进行安装下载
可用选项: -c:显示cpu相关的状态 -d:显示磁盘的状态 -g:显示磁盘的输入输出信息 -m:显示物理内存使用率 -p:显示进程过程状态 -r:显示系统的输入、输出
进程间通信: –top-cpu:显示最占用cpu的进程 –top-io:最占用输入、出的进程 –top-mem:最占用内存的进程 –top-lantency:延时最大的进程
4、使用until和while分别实现192.168.0.0/24
网段内,地址是否能够ping通,弱ping通则输出”success!”,若ping不通则输出”fail!”
for
#!/bin/bash
#
declare -i sum=0
for i in {1..255};do
ping -c 1 192.168.0.$[$sum+$i] > /dev/null
if [ $? -eq 0 ];then
echo "192.168.0.$i success!"
else
echo "192.168.0.$i fail!"
fi
done
while
#!/bin/bash
#
declare -i sum=0
declare -i i=1
while [ $i -le 255 ]; do
ping -c 1 192.168.0.$[$sum+$i] >/dev/null
if [ $? -eq 0 ];then
echo "192.168.0.$i success!"
else
echo "192.168.0.$i fail!"
fi
let i++
done
until
#!/bin/bash
#
declare -i sum=0
declare -i i=1
until [ $i -gt 255 ]; do
ping -c 1 192.168.0.$[$sum+$i] >/dev/null
if [ $? -eq 0 ];then
echo "192.168.0.$i success!"
else
echo "192.168.0.$i fail!"
fi
let i++
done
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91474
评论列表(1条)
赞,不错,希望博文里面的内容能够在实战环境下熟练地使用~加油