web DevOps / volume / pv / vg / lv / process / raid
s
1 硬盤分區(qū)
1.1 Linux中新硬盤經(jīng)歷哪些步驟才能存儲(chǔ)文檔? 識(shí)別硬盤--->劃分分區(qū)--->格式化--->掛載使用 1.2 分區(qū)模式分為哪兩種? MSDOS(MBR) GPT 1.3 MBR常見的分區(qū)類型有那三種? 主分區(qū) 擴(kuò)展分區(qū) 邏輯分區(qū) 1.4 fdisk命令如何劃分新的分區(qū),指令是? n 1.5 parted命令指定分區(qū)模式與劃分新分區(qū)的指令分別是什么? mktable mkpart 1.6 刷新分區(qū)表命令是什么? partprobe 1.7 格式化分區(qū)命令是什么?格式化ext4文件系統(tǒng)的命令?格式化xfs文件系統(tǒng)的命令? mkfs.ext4 mkfs.xfs 1.8 格式化交換分區(qū)的命令是什么?啟用交換分區(qū)的命令是什么?如何查看交換分區(qū)成員? mkswap swapon swapon 1.9 查看文件系統(tǒng)類型的命令是什么? blkid 1.10 如何在開機(jī)狀態(tài)下,檢測(cè)/etc/fstab文件中是否書寫正確,命令是? mount -a swapon -a 1.11 如何掛載一個(gè)iso鏡像文件?鏡像文件它的類型是什么? mount -o loop iso9660 1.12 查看磁盤的使用情況命令是什么? df -h 1.13 開機(jī)掛載配置文件是什么? /etc/fstab 1.14 開機(jī)掛載配置文件六個(gè)字段分別為什么? 設(shè)備名 掛載點(diǎn) 文件系統(tǒng)類型 參數(shù) 0 0 2 環(huán)境準(zhǔn)備:添加一塊新的80G硬盤 [root@localhost ~]# poweroff
2 環(huán)境準(zhǔn)備:添加一塊新的80G硬盤
[root@localhost ~]# poweroff # 停機(jī)加載80G盤
[root@localhost ~]# lsblk
80G硬盤進(jìn)行(MBR分區(qū)模式)規(guī)劃分區(qū)
劃分3個(gè)10G的主分區(qū);2個(gè)20G的邏輯分區(qū)
[root@localhost ~]# fdisk /dev/vdb n 創(chuàng)建主分區(qū)--->回車--->回車--->回車--->在last結(jié)束時(shí) +10G n 創(chuàng)建主分區(qū)--->回車--->回車--->回車--->在last結(jié)束時(shí) +10G n 創(chuàng)建主分區(qū)--->回車--->回車--->回車--->在last結(jié)束時(shí) +10G p 查看分區(qū)表 n 創(chuàng)建擴(kuò)展分區(qū) --->回車--->起始回車--->結(jié)束回車 將所有剩余空間給擴(kuò)展分區(qū) p 查看分區(qū)表 n 創(chuàng)建邏輯分區(qū)----->起始回車------>結(jié)束+20G n 創(chuàng)建邏輯分區(qū)----->起始回車------>結(jié)束+20G p 查看分區(qū)表 w 保存并退出 [root@localhost ~]# lsblk [root@localhost ~]# parted /dev/vdb print #查看分區(qū)類型
3 邏輯卷
作用:1.整合分散的空間 2.空間支持?jǐn)U大
邏輯卷制作過程:將眾多的物理卷(PV)組建成卷組(VG),再從卷組中劃分出邏輯卷(LV)
4 制作邏輯卷
建立卷組(VG)
格式:vgcreate 卷組名 設(shè)備路徑…….
Successfully:成功 example:例子
[root@localhost ~]# man vgcreate #參考幫助信息 按q退出 [root@localhost ~]# vgcreate systemvg /dev/vdb[1-2] [root@localhost ~]# pvs #查看系統(tǒng)所有物理卷信息 [root@localhost ~]# vgs #查看系統(tǒng)卷組信息
建立邏輯卷(LV)
格式: lvcreate -L 大小G -n 邏輯卷名字 卷組名
5 邏輯卷的擴(kuò)展
卷組有足夠的剩余空間
1.擴(kuò)展邏輯卷的空間
2.擴(kuò)展邏輯卷的文件系統(tǒng)(刷新文件系統(tǒng))
xfs_growfs:刷新xfs文件系統(tǒng) , resize2fs:刷新ext4文件系統(tǒng)
1.擴(kuò)展卷組的空間
- ]# vgs
- ]# lvextend -L 25G /dev/systemvg/vo
- ]# vgs
- ]# df -h | grep vo
3.擴(kuò)展邏輯卷的文件系統(tǒng)(刷新文件系統(tǒng))
- ]# xfs_growfs /dev/systemvg/vo
- ]# df -h | grep vo
6 邏輯卷的補(bǔ)充
邏輯卷支持縮減
xfs文件系統(tǒng):不支持縮減
ext4文件系統(tǒng):支持縮減
卷組劃分空間的單位 PE
默認(rèn)1個(gè)PE的大小為4M
- ]# vgdisplay systemvg #顯示卷組的詳細(xì)信息
- PE Size 4.00 MiB #PE的大小
請(qǐng)創(chuàng)建一個(gè)大小為250M的邏輯卷名字為lvredhat
- ]# vgchange -s 1M systemvg #卷組已存在修改PE大小
- ]# vgdisplay systemvg #查看卷組詳細(xì)信息
- ]# lvcreate -L 250M -n lvredhat systemvg
- ]# lvs
創(chuàng)建卷組時(shí),指定PE的大小
- [root@nb ~]# vgcreate -s 1M systemvg /dev/vdb[1-2]
?創(chuàng)建邏輯卷的時(shí)候指定PE個(gè)數(shù)
–lvcreate -l PE個(gè)數(shù) -n 邏輯卷名 卷組名
?修改卷組systemvg的PE大小為1M。基于此卷組創(chuàng)建邏輯卷lvbase大小為98個(gè)PE組成
- [root@localhost ~]# lvcreate -l 98 -n lvbase systemvg
- [root@localhost ~]# lvs
邏輯卷的刪除
刪除邏輯卷的前提:不能刪除正在掛載使用的邏輯卷
- [root@localhost ~]# lvremove /dev/systemvg/vo
- Logical volume systemvg/vo contains a filesystem in use.
- [root@localhost ~]# umount /mylv/
- [root@localhost ~]# lvremove /dev/systemvg/vo
- Do you really want to remove active logical volume systemvg/vo? [y/n]: y
- Logical volume "vo" successfully removed
- [root@localhost ~]# lvs #查看當(dāng)前系統(tǒng)的所邏輯卷
- [root@localhost ~]# vim /etc/fstab #僅刪除vo開機(jī)自動(dòng)掛載
- [root@localhost ~]# lvremove /dev/systemvg/lvredhat
- Do you really want to remove active logical volume systemvg/lvredhat? [y/n]: y
- Logical volume "vo" successfully removed
刪除卷組的前提:基于此卷組創(chuàng)建的所有邏輯卷,要全部刪除
- [root@svr1 ~]# lvs
- [root@svr1 ~]# vgremove systemvg #刪除卷組
- [root@svr1 ~]# vgs #查看當(dāng)前系統(tǒng)的所有卷組信息
- [root@svr1 ~]# pvremove /dev/vdb{1,2,3,5,6}
- [root@svr1 ~]# pvs #查看當(dāng)前系統(tǒng)的所有物理卷信息
7 構(gòu)建本地Yum倉庫
- [root@nb ~]# mkdir /nsd50
- [root@nb ~]# mount /dev/cdrom /nsd50
- [root@nb ~]# ls /nsd50
- [root@nb ~]# rm -rf /etc/yum.repos.d/*
- [root@nb ~]# vim /etc/yum.repos.d/dc.repo
- [wtc]
- name=centos
- baseurl=file:///nsd50/AppStream
- enabled=1
- gpgcheck=0
- [wdc]
- name=centos
- baseurl=file:///nsd50/BaseOS
- enabled=1
- gpgcheck=0
- [root@nb ~]# yum -y install dhcp-server
8 進(jìn)程管理
程序:靜態(tài)沒有執(zhí)行的代碼 硬盤空間
進(jìn)程:動(dòng)態(tài)執(zhí)行的代碼 CPU與內(nèi)存資源
父進(jìn)程與子進(jìn)程 樹型結(jié)構(gòu)
進(jìn)程編號(hào):PID
9 查看進(jìn)程信息
pstree查看進(jìn)程(Processes Tree)
?常用命令選項(xiàng)
-p:列出對(duì)應(yīng)進(jìn)程的PID編號(hào)
-a:顯示完整的命令行
systemd(PID永遠(yuǎn)為1):所有進(jìn)程的父進(jìn)程(上帝進(jìn)程)
- [root@localhost ~]# pstree #顯示正在運(yùn)行的所有進(jìn)程
- [root@localhost ~]# pstree -p lisi #顯示lisi用戶開啟的進(jìn)程
- bash(9609)───vim(9656)
- [root@localhost ~]# pstree -a lisi
- bash
- └─vim haha.txt
- [root@localhost ~]# pstree -ap lisi
ps — Processes Snapshot
–格式:ps [選項(xiàng)]...
?常用命令選項(xiàng)
aux:顯示當(dāng)前終端所有進(jìn)程(a)、當(dāng)前用戶在所有終端下的進(jìn)程(x)、以用戶格式輸出(u)
-elf:顯示系統(tǒng)內(nèi)所有進(jìn)程(-e)、以長(zhǎng)格式輸出(-l)信息、包括最完整的進(jìn)程信息(-f)
? ps aux 操作
– 列出正在運(yùn)行的所有進(jìn)程,顯示進(jìn)程信息非常詳細(xì)
- 用戶 進(jìn)程ID %CPU %內(nèi)存 虛擬內(nèi)存 固定內(nèi)存 終端 狀態(tài) 起始時(shí)間 CPU時(shí)間 程序指令
? ps -elf 操作
–列出正在運(yùn)行的所有進(jìn)程,顯示進(jìn)程父進(jìn)程信息
–PPID為父進(jìn)程的PID
- [root@localhost ~]# ps aux | wc -l
- [root@localhost ~]# ps -elf | wc -l
- [root@localhost ~]# ps aux
- [root@localhost ~]# ps -elf
top 動(dòng)態(tài)的查看工具
–格式:top [-d 刷新秒數(shù)] [-U 用戶名]
- [root@localhost ~]# top -d 1
- 按大寫P進(jìn)行CPU排序
- 按大寫M進(jìn)行內(nèi)存排序
pgrep — Process Grep
–用途:pgrep [選項(xiàng)]... 查詢條件
?常用命令選項(xiàng)
-l:輸出進(jìn)程名,而不僅僅是 PID
-u:檢索指定用戶的進(jìn)程
-x:精確匹配完整的進(jìn)程名
- ]# pgrep -l ab #顯示進(jìn)程名包含ab的進(jìn)程
- ]# pgrep -l sys #顯示進(jìn)程名包含sys的進(jìn)程
- ]# pgrep -u lisi #顯示lisi用戶開啟的進(jìn)程
- ]# pstree -p lisi #顯示lisi用戶開啟的進(jìn)程
- ]# top -d 1 #顯示進(jìn)行信息,每隔1秒刷新
- ]# pgrep -x crond #精確匹配完整的進(jìn)程名
- ]# pgrep -lx crond
10 控制進(jìn)程(進(jìn)程前后臺(tái)的調(diào)度)
?&符號(hào):正在運(yùn)行的狀態(tài)放入后臺(tái)
?Ctrl + z 組合鍵:掛起當(dāng)前進(jìn)程(暫停并轉(zhuǎn)入后臺(tái))
?jobs 命令:查看后臺(tái)任務(wù)列表
?fg 命令:將后臺(tái)任務(wù)恢復(fù)到前臺(tái)運(yùn)行
?bg 命令:激活后臺(tái)被掛起的任務(wù)
- [root@localhost ~]# sleep 2000
- ^Z #按Ctrl+z 暫停放入后臺(tái)
- [1]+ 已停止 sleep 2000
- [root@localhost ~]# jobs #查看后臺(tái)進(jìn)程信息
- [1]+ 已停止 sleep 2000
- [root@localhost ~]# bg 1 #讓后臺(tái)編號(hào)為1 的進(jìn)程繼續(xù)運(yùn)行
- [1]+ sleep 2000 &
- [root@localhost ~]# jobs
- [1]+ 運(yùn)行中 sleep 2000 &
- [root@localhost ~]# fg 1 #讓后臺(tái)編號(hào)為1 的進(jìn)程恢復(fù)到前臺(tái)
- sleep 2000
- ^C #按Ctrl+c 結(jié)束
- [root@localhost ~]# sleep 3000 & #正在運(yùn)行放入后臺(tái)
- [1] 35470
- [root@localhost ~]# jobs
- [1]+ 運(yùn)行中 sleep 3000 &
- [root@localhost ~]#
11 干掉進(jìn)程的不同方法
–Ctrl+c 組合鍵,中斷當(dāng)前命令程序
–kill [-9] PID... 、kill [-9] %后臺(tái)任務(wù)編號(hào)
–killall [-9] 進(jìn)程名...
–pkill [-9] 查找條件 #包含就算
- [root@localhost ~]# sleep 3000 &
- [1] 35490
- [root@localhost ~]# sleep 3000 &
- [2] 35491
- [root@localhost ~]# jobs
- [1]- 運(yùn)行中 sleep 3000 &
- [2]+ 運(yùn)行中 sleep 3000 &
- [root@localhost ~]# killall -9 sleep
- [1]- 已殺死 sleep 3000
- [2]+ 已殺死 sleep 3000
- [root@localhost ~]#
12 RAID磁盤陣列
硬件要求:需要服務(wù)器硬件RAID卡
?廉價(jià)冗余磁盤陣列
–Redundant Arrays of Inexpensive Disks
–通過硬件/軟件技術(shù),將多個(gè)較小/低速的磁盤整合成一個(gè)大磁盤
–陣列的價(jià)值:提升I/O效率、硬件級(jí)別的數(shù)據(jù)冗余
–不同RAID級(jí)別的功能、特性各不相同
?RAID 0,條帶模式
–同一個(gè)文檔分散存放在不同磁盤
–并行寫入以提高效率
–至少需要兩塊磁盤組成,磁盤利用率100%
?RAID 1,鏡像模式
–一個(gè)文檔復(fù)制成多份,分別寫入不同磁盤
–多份拷貝提高可靠性,效率無提升
–至少需要兩塊磁盤組成,磁盤利用率50%
?RAID5,高性價(jià)比模式
–相當(dāng)于RAID0和RAID1的折中方案
–需要至少一塊磁盤的容量來存放校驗(yàn)數(shù)據(jù)
–至少需要三塊磁盤組成,磁盤利用率n-1/n
–提高可靠性,效率提升
?RAID6,高性價(jià)比/可靠模式
–相當(dāng)于擴(kuò)展的RAID5陣列,提供2份獨(dú)立校驗(yàn)方案
–需要至少兩塊磁盤的容量來存放校驗(yàn)數(shù)據(jù)
–至少需要四塊磁盤組成,磁盤利用率n-2/n
?RAID 0+1/RAID 1+0
–整合RAID 0、RAID 1的優(yōu)勢(shì)
–并行存取提高效率、鏡像寫入提高可靠性
–至少需要四塊磁盤組成,磁盤利用率50%
13 VDO卷(了解內(nèi)容)
?Virtual Data Optimizer(虛擬數(shù)據(jù)優(yōu)化器)
–一個(gè)內(nèi)核模塊,目的是通過重刪減少磁盤的空間占用,以及減少復(fù)制帶寬
–VDO是基于塊設(shè)備層之上的,也就是在原設(shè)備基礎(chǔ)上映射出mapper虛擬設(shè)備,然后直接使用即可
?重復(fù)數(shù)據(jù)刪除
–輸入的數(shù)據(jù)會(huì)判斷是不是冗余數(shù)據(jù)
–判斷為重復(fù)數(shù)據(jù)的部分不會(huì)被寫入,然后對(duì)源數(shù)據(jù)進(jìn)行更新,直接指向原始已經(jīng)存儲(chǔ)的數(shù)據(jù)塊即可
- [root@svr7 ~]# yum -y install vdo #所需軟件包
- ?制作VDO卷
- ?vdo基本操作:參考man vdo 全文查找/example
- –vdo create --name=VDO卷名稱 --device=設(shè)備路徑 --vdoLogicalSize=邏輯大小
- –vdo list
- –vdo status -n VDO卷名稱
- –vdo remove -n VDO卷名稱
- –vdostats [--human-readable] [/dev/mapper/VDO卷名稱]
- ?VDO卷的格式化加速(跳過去重分析):
- –mkfs.xfs –K /dev/mapper/VDO卷名稱
- –mkfs.ext4 -E nodiscard /dev/mapper/VDO卷名稱
- 前提制作VDO需要2G以上的內(nèi)存
- [root@nb ~]# vdo create --name=vdo0 --device=/dev/sdc --vdoLogicalSize=200G
- [root@nb ~]# mkfs.xfs -K /dev/mapper/vdo0
- [root@nb ~]# mkdir /nsd01
- [root@nb ~]# mount /dev/mapper/vdo0 /nsd01
- [root@nb ~]# df -h
- [root@nb ~]# vdostats --hum /dev/mapper/vdo0 #查看vdo設(shè)備詳細(xì)信息
- [root@svr7 ~]# vim /etc/fstab
- /dev/mapper/vdo0 /nsd01 xfs defaults,_netdev 0 0
14 sudo提權(quán)
讓普通用戶具備root用戶身份去執(zhí)行某些操作
[root@nb ~]# vim /etc/sudoers #sudo提權(quán)主配置文件
- [root@nb ~]# visudo #此方式可以檢查語法錯(cuò)誤
- bob ALL=(root) /usr/bin/mkdir,/usr/bin/cat
- 普通用戶 所有的主機(jī)=(變成的身份) 可以執(zhí)行的命令程序
- ....此處省略一萬字.....
- [root@nb ~]# useradd bob
- [root@nb ~]# echo 123 | passwd --stdin bob
- [root@nb ~]# su - bob
- [bob@nb ~]$ sudo -l #查看提權(quán)的命令
- ............
- [sudo] bob 的密碼: #輸入bob用戶的密碼
- [bob@nb ~]$ cat /etc/gshadow
- cat: /etc/gshadow: 權(quán)限不夠
- [bob@nb ~]$ sudo cat /etc/gshadow
- [bob@nb ~]$ exit
取消密碼驗(yàn)證
- [root@nb ~]# visudo #取消提權(quán)時(shí)密碼驗(yàn)證
- bob ALL=(root) NOPASSWD:/usr/bin/mkdir,/usr/bin/cat
- ....此處省略一萬字.....
- [root@nb ~]# su – bob
- [bob@nb ~]$ sudo cat /etc/shadow
15 案例1:新建一個(gè)邏輯卷
15.1 問題
本例要求沿用前一天案例,使用分區(qū) /dev/sdb1 構(gòu)建 LVM 存儲(chǔ),相關(guān)要求如下:
- 新建一個(gè)名為 systemvg 的卷組
- 在此卷組中創(chuàng)建一個(gè)名為 vo 的邏輯卷,大小為180MiB
- 將邏輯卷 vo 格式化為 EXT4 文件系統(tǒng)
- 將邏輯卷 vo 掛載到 /vo 目錄,并在此目錄下建立一個(gè)測(cè)試文件 votest.txt,內(nèi)容為“I AM KING.”
15.2 方案
LVM創(chuàng)建工具的基本用法:
- vgcreate 卷組名 物理設(shè)備.. ..
- lvcreate -L 大小 -n 邏輯卷名 卷組名
15.3 步驟
實(shí)現(xiàn)此案例需要按照如下步驟進(jìn)行。
步驟一:創(chuàng)建卷組
1)新建名為systemvg的卷組
- [root@server0 ~]# vgcreate systemvg /dev/sdb1
- Physical volume "/dev/sdb1" successfully created
- Volume group "systemvg" successfully created
2)確認(rèn)結(jié)果
- [root@server0 ~]# vgs
步驟二:創(chuàng)建邏輯卷
1)新建名為vo的邏輯卷
- [root@server0 ~]# lvcreate -L 180MiB -n vo systemvg
- Logical volume "vo" created
2)確認(rèn)結(jié)果
- [root@server0 ~]# lvs
步驟三:格式化及掛載使用
1)格式化邏輯卷/dev/systemvg/vo
- [root@server0 ~]# mkfs.ext4 /dev/systemvg/vo
- .. ..
- Allocating group tables: done
- Writing inode tables: done
- Creating journal (4096 blocks): done
- Writing superblocks and filesystem accounting information: done
2)掛載邏輯卷/dev/systemvg/vo
- [root@server0 ~]# mkdir /vo //創(chuàng)建掛載點(diǎn)
- [root@server0 ~]# mount /dev/systemvg/vo /vo //掛載
- [root@server0 ~]# df -hT /vo/ //檢查結(jié)果
- Filesystem Type Size Used Avail Use% Mounted on
- /dev/mapper/systemvg-vo ext4 171M 1.6M 157M 1% /vo
3)訪問邏輯卷/dev/systemvg/vo
- [root@server0 ~]# cat /vo/votest.txt
- I AM KING.
16 案例2:擴(kuò)展邏輯卷的大小
16.1 問題
本例要求沿用練習(xí)一,將邏輯卷 vo 的大小調(diào)整為 300MiB,要求如下:
- 原文件系統(tǒng)中的內(nèi)容必須保持完整
- 必要時(shí)可使用之前準(zhǔn)備的分區(qū) /dev/sdb5 來補(bǔ)充空間
- 注意:分區(qū)大小很少能完全符合要求的大小,所以大小在270MiB和300MiB之間都是可以接受的
16.2 方案
對(duì)于已經(jīng)格式化好的邏輯卷,在擴(kuò)展大小以后,必須通知內(nèi)核新大小。
如果此邏輯卷上的文件系統(tǒng)是EXT3/EXT4類型,需要使用resize2fs工具;
如果此邏輯卷上的文件系統(tǒng)是XFS類型,需要使用xfs_growfs。
16.3 步驟
實(shí)現(xiàn)此案例需要按照如下步驟進(jìn)行。
步驟一:確認(rèn)邏輯卷vo的信息
1)找出邏輯卷所在卷組
- [root@server0 ~]# lvs
2)查看該卷組的剩余空間是否可滿足擴(kuò)展需要
- [root@server0 ~]# vgdisplay systemvg
- --- Volume group ---
- VG Name systemvg
- System ID
- Format lvm2
- Metadata Areas 1
- Metadata Sequence No 2
- VG Access read/write
- VG Status resizable
- MAX LV 0
- Cur LV 1
- Open LV 0
- Max PV 0
- Cur PV 1
- Act PV 1
- VG Size 196.00 MiB //卷組總大小
- PE Size 4.00 MiB
- Total PE 49
- Alloc PE / Size 45 / 180.00 MiB
- Free PE / Size 4 / 16.00 MiB //剩余空間大小
- VG UUID czp8IJ-jihS-Ddoh-ny38-j521-5X8J-gqQfUN
此例中卷組systemvg的總大小都不夠300MiB、剩余空間才16MiB,因此必須先擴(kuò)展卷組。只有剩余空間足夠,才可以直接擴(kuò)展邏輯卷大小。
步驟二:擴(kuò)展卷組
1)將提前準(zhǔn)備的分區(qū)/dev/sdb5添加到卷組systemvg
- [root@server0 ~]# vgextend systemvg /dev/sdb5
- Physical volume "/dev/sdb5" successfully created
- Volume group "systemvg" successfully extended
2)確認(rèn)卷組新的大小
- [root@server0 ~]# vgdisplay systemvg
- --- Volume group ---
- VG Name systemvg
- .. ..
- VG Size 692.00 MiB //總大小已變大
- PE Size 4.00 MiB
- Total PE 173
- Alloc PE / Size 45 / 180.00 MiB
- Free PE / Size 128 / 512.00 MiB //剩余空間已達(dá)512MiB
- VG UUID czp8IJ-jihS-Ddoh-ny38-j521-5X8J-gqQfUN
步驟三:擴(kuò)展邏輯卷大小
1)將邏輯卷/dev/systemvg/vo的大小調(diào)整為300MiB
- [root@server0 ~]# lvextend -L 300MiB /dev/systemvg/vo
- Extending logical volume vo to 300.00 MiB
- Logical volume vo successfully resized
2)確認(rèn)調(diào)整結(jié)果
- [root@server0 ~]# lvs
3)刷新文件系統(tǒng)大小
確認(rèn)邏輯卷vo上的文件系統(tǒng)類型:
- [root@server0 ~]# blkid /dev/systemvg/vo
- /dev/systemvg/vo: UUID="d4038749-74c3-4963-a267-94675082a48a" TYPE="ext4"
選擇合適的工具刷新大小:
- [root@server0 ~]# resize2fs /dev/systemvg/vo
- resize2fs 1.42.9 (28-Dec-2013)
- Resizing the filesystem on /dev/systemvg/vo to 307200 (1k) blocks.
- The filesystem on /dev/systemvg/vo is now 307200 blocks long.
確認(rèn)新大小(約等于300MiB):
- [root@server0 ~]# mount /dev/systemvg/vo /vo/
- [root@server0 ~]# df -hT /vo
- Filesystem Type Size Used Avail Use% Mounted on
- /dev/mapper/systemvg-vo ext4 287M 2.1M 266M 1% /vo
17 案例3:查看進(jìn)程信息
17.1 問題
本例要求掌握查看進(jìn)程信息的操作,使用必要的命令工具完成下列任務(wù):
- 找出進(jìn)程 gdm 的 PID 編號(hào)值
- 列出由進(jìn)程 gdm 開始的子進(jìn)程樹結(jié)構(gòu)信息
- 找出進(jìn)程 sshd 的父進(jìn)程的 PID 編號(hào)/進(jìn)程名稱
- 查看當(dāng)前系統(tǒng)的CPU負(fù)載/進(jìn)程總量信息
17.2 方案
查看進(jìn)程的主要命令工具:
- ps aux、ps –elf:查看進(jìn)程靜態(tài)快照
- top:查看進(jìn)程動(dòng)態(tài)排名
- pstree:查看進(jìn)程與進(jìn)程之間的樹型關(guān)系結(jié)構(gòu)
- pgrep:根據(jù)指定的名稱或條件檢索進(jìn)程
17.3 步驟
實(shí)現(xiàn)此案例需要按照如下步驟進(jìn)行。
步驟一:找出進(jìn)程 gdm 的 PID 編號(hào)值
使用pgrep命令查詢指定名稱的進(jìn)程,選項(xiàng)-l顯示PID號(hào)、-x精確匹配進(jìn)程名:
- [root@svr7 ~]# pgrep -lx gdm
- 1584 gdm
步驟二:列出由進(jìn)程 gdm 開始的子進(jìn)程樹結(jié)構(gòu)信息
使用pstree命令,可以提供用戶名或PID值作為參數(shù)。通過前一步已知進(jìn)程gdm的PID為1584,因此以下操作可列出進(jìn)程gdm的進(jìn)程樹結(jié)構(gòu):
- [root@svr7 ~]# pstree -p 1584
- gdm(1584)-+-Xorg(1703)
- |-gdm-session-wor(2670)-+-gnome-session(2779)-+-gnom+
- | | |-gnom+
- | | |-{gno+
- | | |-{gno+
- | | `-{gno+
- | |-{gdm-session-wor}(2678)
- | `-{gdm-session-wor}(2682)
- |-{gdm}(1668)
- |-{gdm}(1671)
- `-{gdm}(1702)
步驟三:找出進(jìn)程 sshd 的父進(jìn)程的 PID 編號(hào)/進(jìn)程名稱
要查看進(jìn)程的父進(jìn)程PID,可以使用ps –elf命令,簡(jiǎn)單grep過濾即可。找到進(jìn)程sshd所在行對(duì)應(yīng)到的PPID值即為其父進(jìn)程的PID編號(hào)。為了方便直觀查看,建議先列出ps表頭行,以分號(hào)隔開再執(zhí)行過濾操作。
- [root@svr7 ~]# ps -elf | head -1 ; ps -elf | grep sshd
- F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
- 4 S root 1362 1 0 80 0 - 20636 poll_s Jan05 ? 00:00:00 /usr/sbin/sshd –D
- .. .. //可獲知進(jìn)程sshd的父進(jìn)程PID為1
然后再根據(jù)pstree –p的結(jié)果過濾,可獲知PID為1的進(jìn)程名稱為systemd:
- [root@svr7 ~]# pstree -p | grep '(1)'
- systemd(1)-+-ModemManager(995)-+-{ModemManager}(1018)
步驟四:查看當(dāng)前系統(tǒng)的CPU負(fù)載/進(jìn)程總量信息
使用top命令,直接看開頭部分即可;或者 top -n 次數(shù):
- [root@svr7 ~]# top
- top - 15:45:25 up 23:55, 2 users, load average: 0.02, 0.03, 0.05
- Tasks: 485 total, 2 running, 483 sleeping, 0 stopped, 0 zombie
- %Cpu(s): 1.7 us, 1.0 sy, 0.0 ni, 97.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
- KiB Mem : 1001332 total, 76120 free, 419028 used, 506184 buff/cache
- KiB Swap: 2097148 total, 2096012 free, 1136 used. 372288 avail Mem
- .. ..
觀察Tasks: 485 total部分,表示進(jìn)程總量信息。
觀察load average: 0.02, 0.03, 0.05 部分,表示CPU處理器在最近1分鐘、5分鐘、15分鐘內(nèi)的平均處理請(qǐng)求數(shù)(對(duì)于多核CPU,此數(shù)量應(yīng)除以核心數(shù))。
對(duì)于多核CPU主機(jī),如果要分別顯示每顆CPU核心的占用情況,可以在top界面按數(shù)字鍵1進(jìn)行切換:
[root@svr7 ~]# top top - 15:47:45 up 23:57, 2 users, load average: 0.02, 0.03, 0.05 Tasks: 485 total, 2 running, 269 sleeping, 0 stopped, 1 zombie Cpu0 : 0.6%us, 7.8%sy, 0.0%ni, 91.6%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu1 : 0.7%us, 3.7%sy, 0.0%ni, 95.6%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu2 : 0.7%us, 1.7%sy, 0.0%ni, 97.6%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu3 : 0.3%us, 1.0%sy, 0.0%ni, 98.3%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 16230564k total, 15716576k used, 513988k free, 326124k buffers Swap: 8388604k total, 220656k used, 8167948k free, 11275304k cached .. ..
18 案例4:進(jìn)程調(diào)度及終止
18.1 問題
本例要求掌握調(diào)度及終止進(jìn)程的操作,使用必要的工具完成下列任務(wù):
- 運(yùn)行“sleep 600”命令,再另開一個(gè)終端,查出sleep程序的PID并殺死
- 運(yùn)行多個(gè)vim程序并都放入后臺(tái),然后殺死所有vim進(jìn)程
- su切換為zhsan用戶,再另開一個(gè)終端,強(qiáng)制踢出zhsan用戶
18.2 方案
進(jìn)程調(diào)度及終止的主要命令工具:
- 命令行 &:將命令行在后臺(tái)運(yùn)行
- Ctrl + z 組合鍵:掛起當(dāng)前進(jìn)程(暫停并轉(zhuǎn)入后臺(tái))
- jobs:列出當(dāng)前用戶當(dāng)前終端的后臺(tái)任務(wù)
- bg 編號(hào):?jiǎn)?dòng)指定編號(hào)的后臺(tái)任務(wù)
- fg 編號(hào):將指定編號(hào)的后臺(tái)任務(wù)調(diào)入前臺(tái)運(yùn)行
- kill [-9] PID...:殺死指定PID值的進(jìn)程
- kill [-9] %n:殺死第n個(gè)后臺(tái)任務(wù)
- killall [-9] 進(jìn)程名...:殺死指定名稱的所有進(jìn)程
- pkill:根據(jù)指定的名稱或條件殺死進(jìn)程
18.3 步驟
實(shí)現(xiàn)此案例需要按照如下步驟進(jìn)行。
步驟一:根據(jù)PID殺死進(jìn)程
1)開啟sleep測(cè)試進(jìn)程
另開一個(gè)終端,ps aux并過濾進(jìn)程信息(第2列為PID值):
[root@svr7 ~]# ps aux | grep sleep root 32929 0.0 0.0 4312 360 pts/1 S+ 17:25 0:00 sleep 600
3)殺死指定PID的進(jìn)程
1)在后臺(tái)開啟多個(gè)vim進(jìn)程
[root@svr7 ~]# killall -9 vim [1] 已殺死 vim a.txt [2]- 已殺死 vim b.txt [3]+ 已殺死 vim c.txt
4)確認(rèn)殺進(jìn)程結(jié)果
[root@svr7 ~]# jobs -l
[root@svr7 ~]#
步驟三:殺死屬于指定用戶的所有進(jìn)程
1)登入測(cè)試用戶zhsan
end

浙公網(wǎng)安備 33010602011771號(hào)