第六周作业

1、简述osi七层模型和TCP/IP五层模型

image

应用层

运行着应用程序的协议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核心

界面:

image

左栏显示:
  • 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 帮助文件

iagme 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: 设置

iagme

  • Setup:设定选项
  • Meters:表
  • left column:左栏显示内容
  • Right column:右栏显示内容
  • Available meters:可选用表

Meters:调整可使用的表

可用快捷键: Enter:首次点击为选定,再次点击放置 UP:向上移动 Dn:向下移动 Lt:向左移动 Rt:向右移动 Space:切换显示模式 [ ] Del:删除表 Esc:完成并返回主界面

Display options:显示选项

iamge

  • [x]:启用
  • [ ]: 禁用

可用快捷键: space:启用或禁用 UP:向上移动 Dn:向下移动 Lt:向左移动 Rt:向右移动 鼠标点击启用或禁用 * Esc:完成并返回主界面

Colors:修改主题颜色

iamge

  • [x]:启用
  • [ ]: 禁用

可用快捷键: space:启用或禁用 UP:向上移动 Dn:向下移动 Lt:向左移动 Rt:向右移动 鼠标点击启用或禁用 * Esc:完成并返回主界面

Columns:自定显示栏

iamge

设定后的效果

iamge

可用快捷键: Enter:在可用表栏点击可直接添加, UP 或 F7:向上移动 Dn 或 F8:向下移动 Del 或 F9 :删除表 * Esc:完成并返回主界面

F3 进行条件查询

image


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秒更新一次数据

image

示例:vmtat -s 详情模式显示

image

pmap 命令

通过抽取cat /proc/PID/maps用来显示内存映射表

语法格式:

pmap [options] pid […]

常用选项:

-x:显示详细格式的信息

示例: -x

iamge

示例:cat /proc/2555/maps

iamge

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

image

分栏内容解释: 首航显示:计算机名,系统版本及本和版本,启动累计时间

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

image

C/S模式使用glance 远程监控服务器系统时:注意版本需要兼容才可以。

1、首先在服务器打开模式: glances -s -B IPADDR

2、客户端模式: glances -c IPADDR

dstat 命令

非常精巧的生成系统统计数据的工具,使用命令可以独立的查看指定设备的信息。

dstat [-afv] [options..] [delay [COUNT]]

可使用yum install dstat -y 进行安装下载

imagm

可用选项: -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

(0)
上一篇 2018-02-05 11:57
下一篇 2018-02-06 18:42

相关推荐

  • Bash Shell语法之三函数简介

     Bash Shell语法之三函数简介 一、什么是Bash函数 像其他编程语言一样,Shell 也支持函数。Shell函数必须先定义后使用。函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。 二、Bash函数定义格式 [ function ] fun () {     &nb…

    Linux干货 2015-05-11
  • samba应用

    samba详解 前言 前面学过了NFS,是一个网络文件系统,可以让远程连接像访问本地文件一样,在同一个网络上的多个用户间共享目录和文件系统。只不过NFS只是针对于两个linux主机,我们现在需要linux主机和windows主机都能共享,这个时候就用到了samba。 1、步骤,允许个别用户访问 1、安装下面三个包: samba samba-common sa…

    Linux干货 2016-12-21
  • 第三次 练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]# who | cut -d "" -f1 |uniq root     pts/0        2016-11-13 12:17 (172.16.220.14) 2、取出最后登录到…

    Linux干货 2016-11-16
  • SED基本用法和在文本中的使用

    sed命令行格式为: sed [-nefri] ‘command’ 输入文本/文件 常用选项: -n∶取消默认的输出,使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来 -e∶进行多项编辑,…

    Linux干货 2017-05-05
  • MogileFS基于Nginx反向代理实现分布式存储与访问

    前言 随着信息社会的发展,越来越多的信息被数据化,尤其是伴随着大数据时代的来临,数据呈爆炸式增长。传统存储在面对海量数据存储表现出的力不从心已经是不争的事实,例如:纵向扩展受阵列空间限制,横向扩展受交换设备限制,节点受文件系统限制等。而分布式存储的出现在一定程度上有效的缓解了这一问题,目前比较流行的分布式文件系统有:GFS、HDFS、GlusterFS、Mo…

    Linux干货 2015-07-08
  • 20161028第9天作业

    20161028第9天作业 1、编写脚本/root/bin/hostping.sh,接受一个主机的IPv4地址做为参数,测试是否可连通。如果能ping通,则提示用户“该IP地址可访问”;如果不可ping通,则提示用户“该IP地址不可访问” 2、编写脚本/root/bin/checkdisk.sh,检查磁盘分区空间和inode使用率率,如果超过80%,就发广播…

    Linux干货 2016-10-30

评论列表(1条)

  • 马哥教育
    马哥教育 2018-03-21 09:19

    赞,不错,希望博文里面的内容能够在实战环境下熟练地使用~加油