馬哥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.www58058.com/91195

(1)
歐陽歐陽
上一篇 2018-01-20 10:37
下一篇 2018-01-21 16:02

相關推薦

  • 進入linux世界的初步認識

    1、 描述計算機的組成及其功能.
    2、 按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別.
    3、 描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述.
    4、 說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相應的示例來闡述.
    5、 如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的.
    6、 請羅列Linux發行版的基礎目錄名稱命名法則及功用規定.

    Linux干貨 2018-02-25
  • 面授20-1班 0805課間練習與課后作業

    課間練習 第一階段 新學的命令文本命令cat tac rev more less head tail cut paste wc sort dif patch 1 、找出ifconfig 命令結果中本機的所有IPv4 地址 [root@IP70-CentOS7 ~]# >>ifconfig | tr&nbsp…

    Linux干貨 2016-08-07
  • ?RAID使用手冊

    RAID使用手冊 RAID演示

    Linux干貨 2016-09-02
  • Linux簡單命令說明(date、clock、echo 、Tab鍵、screen)

    Linux簡單命令說明 1、如何查詢命令的幫助文檔 外部命令:是系統用應用程序的一部分,在系統啟動時不會被加載到內存,而在服務或進程啟用時 才執行它。 查看 COMMAND –help man COMMAND 內部命令:是簡小的命令,開機就已加載到shell中。 查看 help COMMAND 2、date和clock命令 date #顯示當前系統時間 […

    Linux干貨 2017-07-12
  • Nginx 編譯安裝

    簡介 Nginx ("engine x") 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。Nginx是由Igor Sysoev為俄羅斯訪問量第二的Rambler.ru站點開發的,第一個公開版本0.1.0發布于2004年10月4日。其將源代碼以類BSD許可證的形式發布,因它的穩定性、豐富的功能集、示例配…

    Linux干貨 2016-12-01
  • 數據結構-棧和隊列

    1.棧 1.1 棧的定義 棧是一種特殊的線性表。其特殊性在于限定插入和刪除數據元素的操作只能在線性表的一端進行。如下所示: 結論:后進先出(Last In First Out),簡稱為LIFO線性表。 棧的基本運算有六種: 構造空棧:InitStack(S)、 判??? StackEmpty(S)、 判棧滿: StackFull(S)、 …

    Linux干貨 2015-04-07
欧美性久久久久