马哥Linux第六周作业

网络管理 进程查看及管理之ps,top,htop,dstat,vmstat

1.OSI七层模型概述

2018-01-20_151537

OSI(open system interconnect):开放系统互联参考模型,分为应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

物理层的主要功能

⑴为数据端设备提供传输数据的通路

⑵完成物理层的管理任务

数据链路层的主要功能

⑴链路连接的建立、拆除、分离

⑵帧定界和帧同步

⑶控制帧的收发顺序

⑷差错检测和恢复

网络层的主要功能

⑴路由选择和中继

⑵激活和终止网络连接

⑶网络连接的检测与修复

⑷网络服务的管理

传输层的主要功能:

⑴端开放系统之间数据的收妥确认

会话层的主要功能:

⑴将会话地址转换为数据传输地址

⑵连接的释放

表示层的主要功能

把应用层提供的信息转换为能够共同理解的形式;提供字符代码、数据格式、控制信息格式、加密等的统一表示

应用层的主要功能:

实现应用进程之间的信息交换

 

2.TCP/IP五层模型概述

2018-01-20_154703

3.ifcfg命令家族:ifconfig,route,netstat

 

ifconfig命令:接口、地址的查看与管理

查看:ifconfig [INTERFACE]

ifconfig:查看所有启动接口

ifconfig -a:查看所有接口;包括启动和未启动的

管理:

ifconfig IFACE IP/MASK [up]

[root@localhost ~]# ifconfig eno33554960 10.0.0.1/24

ifconfig IFACE IP netmask MASK

[root@localhost ~]# ifconfig eno33554960 20.0.0.1 netmask 255.255.255.0

注意:命令执行完后会立即生效,并启动接口

 

route命令:路由的查看及管理

路由条目的类型:

主机路由:目标地址为单个ip

网络路由:目标地址为一个网段

默认路由:目标地址为任意网络,0.0.0.0/0.0.0.0

 

查看:

route

route -n:如果路由表中有主机名,则显示其对应的ip地址

 

添加:route add [-net|-host] TARGET [netmask MASK] [gw GW] [[dev] if]

[root@localhost ~]# route add -net 20.0.0.0/24 gw 10.0.0.1 dev eno33554960

[root@localhost ~]# route add -net 30.0.0.0 netmask 255.255.255.0 gw 10.0.0.2 dev eno33554960

[root@localhost ~]# route add default gw 10.0.0.1

 

删除:route del [-net|-host] TARGET [netmask MASK] [gw GW] [[dev] if]

[root@localhost ~]# route del -net 20.0.0.0/24 gw 10.0.0.1 dev eno33554960

[root@localhost ~]# route del -net 30.0.0.0 netmask 255.255.255.0 gw 10.0.0.2 dev eno33554960

[root@localhost ~]# route del default gw 10.0.0.1

 

netstat命令:显示网络连接、路由表、端口信息等

显示路由信息:

netstat -r:显示内核路由表

netstat -r -n:将主机名解析为ip

 

显示网络连接(连接均有其状态):

-t:显示tcp协议的连接

-u:显示udp协议的连接

-w:raw socket相关的连接

-a:显示所有状态的连接

-l:显示监听状态的连接

-n:以数字的形式显示

-e:扩展格式

-p:显示相关的进程及PID

 

显示所有接口:

netstat -i

显示指定接口:

netstat -I<IFACE>

[root@localhost ~]# netstat -Ieno33554960
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eno33554 1500 20 0 0 0 172 0 0 0 BMRU

 

ifup/ifdown IFACE:启动或关闭接口

 

hostname命令:

查看:hostname

配置:hostname HOSTNAME

 

在CentOS 7中建议使用hostnamectl命令

hostnamectl status:显示主机名等信息

[root@localhost ~]# hostnamectl status
Static hostname: localhost.localdomain
Icon name: computer
Chassis: n/a
Machine ID: 0ed24cbf513a4db7892835914e7e9d73
Boot ID: b08201b39a174881a8c7804e78f15daf
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-229.el7.x86_64
Architecture: x86_64

hostnamectl set-hostname HOSTNAME:设置主机名,永久有效

[root@localhost ~]# hostnamectl set-hostname myhost

 

编辑配置文件/etc/sysconfig/network,写入

HOSTNAME=

永久有效,但是此方法并不会立即生效,一般用于CentOS 6

 

配置DNS服务器指向:

编辑配置文件/etc/resolv.conf,写入

nameserver DNS_SERVER_IP

最多三个

如何测试DNS服务器

dig -t A HOSTNAME:将主机名转换为ip

 

4.iproute家族:

ip命令:显示和管理路由、设备、路由策略、通道

基本格式:ip [OPTIONS] OBJECT {COMMAND|help}

常用的OBJECT为:link,addr,route

 

ip link:网络设备配置

ip link set DEVICE:管理设备属性

up:启用

[root@myhost ~]# ip link set eno33554960 up

down:禁用

[root@myhost ~]# ip link set eno33554960 down

multicast {on|off}:多播功能

name NEWNAME:重命名,需要先down掉接口

mtu MTU:设置MTU大小,默认为1500

ip link show [DEVICE]:显示设备属性

ip link help:显示帮助

 

ip address:管理ip地址

添加:ip addr add IFADDR dev IFACE

[root@myhost ~]# ip addr add 10.0.0.1/24 dev eno33554960

[label NAME]:为额外添加的接口指定接口别名

[root@myhost ~]# ip addr add 20.0.0.1/24 dev eno33554960 label eno33554960:0

 

删除:ip addr delete IFADDR dev IFACE

[root@myhost ~]# ip addr delete 20.0.0.1/24 dev eno33554960

 

显示:ip addr show [IFACE]

[root@myhost ~]# ip addr show eno33554960
3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:c4:f3:d3 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.1/24 scope global eno33554960
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fec4:f3d3/64 scope link
valid_lft forever preferred_lft forever

 

清空:ip addr flush dev IFACE

[root@myhost ~]# ip addr flush dev eno33554960

 

ip route:管理路由表

添加:ip route add TYPE PREFIX via GW [dev IFACE] src [SOURCE_IP]

[root@myhost ~]# ip route add 20.0.0.0/24 via 10.0.0.1 dev eno33554960 src 10.0.0.10

修改:ip route change TYPE PREFIX via GW [dev IFACE] src [SOURCE_IP]

替换:ip route replace TYPE PREFIX via GW [dev IFACE] src [SOURCE_IP]

删除:ip route delete TYPE PREFIX [via GW] [dev IFACE] src [SOURCE_IP]

[root@myhost ~]# ip route delete 20.0.0.0/24

显示:ip route show

清空路由表:ip route flush

 

ss命令:

基本格式:ss [OPTIONS] [FILTER]

-t:tcp协议相关连接
-u:udp协议相关连接
-w:raw socket相关连接
-l:监听状态的连接
-a:所有状态的连接
-n:数字格式
-p:相关的进程及PID
-e:扩展格式信息
-m:内存用量
-o:计时器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]

TCP的常见状态:
LISTEN:监听
ESTBLISHED:已建立的连接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED:断开的连接
5.相关配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE
定义ip、掩码、网关、DNS等属性,可使用vim等文本编辑器直接修改,也可以使用专用的命令修改,CentOS 6使用setup,CentOS 7使用nmtui
配置文件的参数:
DEVICE:此配置文件对应的设备名称
ONBOOT:在系统引导过程中是否激活此接口
UUID:此设备的唯一标识
IPV6INIT:是否初始化IPV6
BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none
TYPE:接口类型,常见的有Ethernet、Bridge
DNS1:第一DNS服务器,最多三个
DOMAIN:DNS搜索域
IPADDR:ip地址
NETMASK:子网掩码,CentOS 7支持使用PREFIX以长度的方式指明子网掩码
GATEWAY:网关
USERCTL:是否允许普通用户控制此设备
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的DNS服务器指向覆盖本地手动指定的DNS服务器指向,默认为允许
HWADDR:硬件设备的MAC地址
[root@myhost network-scripts]# cat ifcfg-eno33554960
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
NAME=eno33554960
DEVICE=eno33554960
ONBOOT=yes
IPADDR=10.0.0.10
PREFIX=24
GATEWAY=10.0.0.1
DNS1=10.0.0.1
配置文件修改后,如果要生效,需要重启网络服务
CentOS 6:service network restart
CentOS 7:systemctl restart network.service

/etc/sysconfig/network-scripts/route-IFACE:需使用非默认网关路由,并且需要永久有效时使用
支持两种配置方式,但不可混用
⑴每行一个路由条目
TARGET via GW
⑵每三行一个路由条目
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP

给接口配置多个地址:
ip addr之外,ifconfig或配置文件都可以
⑴ifconfig IFACE_LABEL IP/NETMASK
IFACE_LABEL:eth0:0,eth0:1…
[root@myhost network-scripts]# ifconfig eno33554960:0 20.0.0.1/24
⑵为别名添加配置文件,文件名为ifcfg-IFACE_LABEL
DEVICE=IFACE_LABEL
BOOTPROTO:网卡别名不支持动态获取地址,只能使用static、none
6.ps命令
功能:显示系统当前的进程状态,即执行ps命令这一瞬间的所有进程的状态,而非持续性的显示
格式:ps [OPTIONS]
ps命令的选项有三种格式
⑴UNIX风格的格式,即选项前要带上“-”
⑵BSD风格的格式,即选项前不能有“-”
⑶GNU风格的格式,即选项前要带上“–”
下面对一些常用选项进行介绍
a:BSD风格,显示所有与终端相关的进程
x:BSD风格,显示所有与终端无关的进程
u:BSD风格,以用户为核心要素来显示进程
所以ps命令的常用组合之一就是ps aux,其显示内容如下:
2018-01-26_140002
其中各字段的含义为:
USER:用户名
PID:进程号
%CPU:占用cpu百分比
%MEM:占用内存的百分比
VSZ:占用的虚拟内存集的大小
RSS:占用的常驻内存集的大小
TTY:终端号
STAT:运行状态,运行状态的表示字符的含义:
               R:running,运行中
               S:interruptable sleeping,可中断的睡眠状态
               D:uninterruptable sleeping,不可中断的睡眠状态
               T:stopped,停止的
               Z:zombie,僵死状态
               +:前台进程,即终端进程
                l: 多线程进程
               N:低优先级进程
               <:高优先级进程
                s:session leader

START:启动时间
TIME:运行时长
COMMAND:命令,其中带中括号的是线程名
-e:UNIX风格,显示所有进程
-f:UNIX风格:显示完整格式
所以ps命令的常用组合之二就是:ps -ef
2018-01-26_141125
PPID表示该进程的父进程的ID号
C表示占用cpu的百分比
STIME:表示启动时间
-F:UNIX风格,显示更加完整的信息,比-f更详细
-H:UNIX风格,以层级结构显示进程信息
所以ps命令的常用组合之三就是:ps -eFH
2018-01-26_141511
SZ表示占用的虚拟内存集大小
PSR表示该进程运行在哪颗cpu上
o:BSD风格,自定义要显示的字段列表,以逗号分隔
常用的字段有:user,uid,pid,ni(nice值),priority,psr,stat,comm,tty,rtprio(实时优先级)
所以ps命令的常用组合之四就是:
ps axo 字段1,字段2,…
ps -eo 字段1,字段2,…
7.top命令
功能:实时性的显示系统进程信息
2018-01-26_143436
第一行字段含义:
系统时间,系统运行时长,登录用户数量,过去1分钟、5分钟、15分钟的平均负载
第二行字段含义:
任务总数,运行状态的进程数,睡眠状态的进程数,停止状态的进程数,僵死状态的进程数
第三行字段含义:cpu占用百分比
用户空间占用cpu的百分比,内核空间占用cpu的百分比,调整nice值得进程占用cpu的百分比,cpu空闲百分比,等待完成消耗的cpu百分比,处理硬件中断占用cpu的百分比,处理软件中断占用cpu的百分比,被虚拟化进程占用的cpu百分比
第四行字段含义:内存占用量,单位为KB
内存总空间大小,空闲空间,使用空间,用于缓冲和缓存,可回收的空间
第五行字段含义:swap占用量,单位为KB
swap总空间大小,空闲空间,使用空间
PR表示优先级
NI表示nice值
VIRT表示占用的虚拟内存集大小
SHR表示占用的共享内存集大小
S表示运行状态
top常用的一些交互式命令:
1:如果当前主机有多核cpu,使用1可切换显示各核cpu的信息
P:以cpu占用进行排序,默认使用
M:以内存占用百分比排序
T:以累计运行时间排序
l:开启或关闭显示首部的第一行信息
t:开启或关闭显示首部的Tasks和cpu信息
m:开启或关闭显示首部的内存和swap信息
q:退出
s:指定刷新时间间隔
k:指定要终止的进程
一些常用选项:
-d #:指定刷新时间间隔,默认3秒
-b:以批次方式显示,即某一秒的进程信息
-n #:指定显示多少个批次
8.htop命令:
自带的程序包中没有htop软件,所以需要额外的下载软件包。因本实验环境的虚拟机可以连接互联网,所以通过自制yum源连接阿里云的镜像站点来获取软件包
[root@localhost yum.repos.d]# cat epel.repo
[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
gpgcheck=0
enable=1
使用yum install htop即可安装
2018-01-26_150434
常用的交互式命令:
h:查看简要的帮助信息
u:选择要查看的用户
H:显示或隐藏线程数thr,在右上角,默认显示
K:显示或隐藏内核线程数kthr,在右上角,默认隐藏
l:显示当前光标所在的进程所打开的文件列表
s:显示当前光标所在的进程所发起的系统调用
t:以层级关系显示进程
S:设置显示格式
常用选项:
-d #:指定刷新时间间隔
-u USERNAME:仅显示指定用户的进程
-s 字段:以指定的字段排序
9.vmstat命令
功能:显示进程、内存、IO、cpu等信息
格式:vmstat [OPTIONS] [delay[count]]
delay:指定时间间隔
count:指定显示的次数
2018-01-26_152136
其中个字段的含义如下:
procs:进程信息
           r:运行中或等待运行的进程个数
           b:不可中断的睡眠状态的进程个数
memory:内存信息
           swpd:swap空间大小
           free:空闲的内存空间大小
           buff:缓冲空间大小
           cache:缓存空间大小
swap:swap信息
           si:数据从块设备读入到swap的速率
           so:数据从swap写入到到块设备的速率
io:IO信息
           bi:数据从块设备读入到系统的速率
           bo:数据从系统写入到块设备的速率
system:内核信息
           in:中断速率
           cs:上下文切换速率
cpu:cpu信息
           us:用户空间所占用的cpu百分比
           sy:内核空间所占用的cpu百分比
           id:cpu空闲百分比
           wa:等待运行所消耗的cpu百分比
           st:用于虚拟化进程所消耗的cpu百分比
常用选项:
-s:显示内存统计数据
10.dstat命令
dstat是一个轻量化的查看全局系统资源信息的工具,该工具需要额外从自带的光盘安装,执行yum install dstat安装即可
格式:dstat [OPTIONS] [delay[count]]
delay:指定刷新时间间隔
count:指定显示次数
2018-01-26_153818
常用选项:
-c:仅显示cpu的相关信息
-C #,#,total:显示指定cpu或所有cpu的相关信息,在有多核cpu时使用
-d:显示磁盘IO相关信息
-D sda,sdb,…total:显示指定磁盘或所有磁盘的相关信息
-g:显示page相关的信息
-m:显示内存的相关信息
-n:显示interface的相关信息
-p:显示process的相关信息
-r:显示IO的相关信息
-s:显示swap的相关信息
–tcp:显示tcp协议的相关信息
–udp:显示udp协议的相关信息
–top-cpu:显示最占用cpu的进程
–top-io:显示最占用IO的进程
–top-mem:最占用内存的进程
–top-lantency:延迟最大的进程

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

联系我们

400-080-6560

在线咨询

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

QR code