linux入門(mén)系列12--磁盤(pán)管理之分區(qū)、格式化與掛載

前面系列文章講解了VI編輯器、常用命令、防火墻及網(wǎng)絡(luò)服務(wù)管理,本篇將講解磁盤(pán)管理相關(guān)知識(shí)。

本文將會(huì)介紹大量的Linux命令,其中有一部分在“l(fā)inux入門(mén)系列5--新手必會(huì)的linux命令”一文中已經(jīng)介紹,遺忘了或沒(méi)學(xué)習(xí)過(guò)的請(qǐng)自行查看。

磁盤(pán)管理主要涉及磁盤(pán)擴(kuò)容以及磁盤(pán)配額管理,當(dāng)服務(wù)器磁盤(pán)空間達(dá)到一定程度(個(gè)人認(rèn)為一般使用量占到總?cè)萘康?0-80%)就需要考慮新加磁盤(pán)實(shí)現(xiàn)擴(kuò)容,一般操作步驟為分區(qū)、格式化、掛載、驗(yàn)證及使用。而磁盤(pán)配額主要是針對(duì)用戶設(shè)置其最大的磁盤(pán)空間使用量,防止當(dāng)個(gè)用戶占用磁盤(pán)過(guò)多的情況。下面將在虛擬機(jī)中模擬磁盤(pán)的這些管理操作,生產(chǎn)環(huán)境中操作命令和方式都是一樣的。

在演示具體操作之前先了解一下相關(guān)的理論知識(shí)。

一、磁盤(pán)管理相關(guān)理論知識(shí)

1.1 文件存儲(chǔ)結(jié)構(gòu)與文件定位

Linux系統(tǒng)中一切都是文件,既然是文件那就涉及文件的存儲(chǔ)以及文件的定位查找。

1.1.1 文件存儲(chǔ)結(jié)構(gòu)

在windows系統(tǒng)中,我們存儲(chǔ)文件一般是將磁盤(pán)劃分為幾個(gè)不同的盤(pán)符(比如C、D、E、F等等),然后將資料存儲(chǔ)在不同的盤(pán)符下。查找的時(shí)候也是根據(jù)對(duì)應(yīng)的盤(pán)符找到相應(yīng)的存儲(chǔ)文件夾,進(jìn)而找到對(duì)應(yīng)的文件。

但是在Linux下,情況有些不一樣,一切文件都是從根目錄開(kāi)始的,并不像windows一樣存在盤(pán)符的說(shuō)法,并且Linux下的目錄名稱是嚴(yán)格區(qū)分大小寫(xiě)的。

文件在Linux中存儲(chǔ)是有一定規(guī)律的,它是按照文件系統(tǒng)層次化標(biāo)準(zhǔn)(FHS)采用樹(shù)形結(jié)構(gòu)來(lái)存放文件,并且定義了常見(jiàn)的目錄的用途(也就是規(guī)定了什么文件夾放什么文件)。具體的樹(shù)形目錄結(jié)構(gòu)與FHS規(guī)定的目錄用途參見(jiàn)系列第二篇文章“l(fā)inux入門(mén)系列2--GUI基本操作及目錄結(jié)構(gòu)”的Centos目錄結(jié)構(gòu)部分,在此不再贅述。

注意:FHS只是一個(gè)約定的標(biāo)準(zhǔn)并沒(méi)有強(qiáng)制要求某一類(lèi)文件一定要放在指定的文件夾下,因此在接手一臺(tái)新服務(wù)器時(shí)需要注意,有的人可能并沒(méi)按這個(gè)標(biāo)準(zhǔn)來(lái)放置文件,需要靈活對(duì)待。當(dāng)然強(qiáng)烈建議按FHS要求來(lái)對(duì)文件進(jìn)行管理。

1.1.2 文件定位

文件是通過(guò)路徑來(lái)定位,分為絕對(duì)路徑相對(duì)路徑

絕對(duì)路徑是指從根目錄開(kāi)始到文件或目錄,而相對(duì)路徑則是相對(duì)于當(dāng)前路徑。

示例中假設(shè)當(dāng)前路徑為:/root/test/test1

[root@heimatengyun test1]# pwd
/root/test/test1
[root@heimatengyun test1]# ls
hello  test
[root@heimatengyun test1]# cat hello 
hello 
[root@heimatengyun test1]# cat /root/test/test1/hello 
hello
[root@heimatengyun test1]# 

在/root/test/test1目錄下有一個(gè)hello文件,其中“cat hello”命令是相對(duì)于當(dāng)前路徑下的hello文件,而 “cat /root/test/test1/hello ”則是給出了完整的絕對(duì)路徑。通過(guò)相對(duì)路徑和絕對(duì)路徑都可以訪問(wèn)到具體的文件。

1.2 Linux文件的快捷方式

1.2.1 Linux的“快捷方式”

相信大家一定熟悉windows下的快捷方式,尤其是軟件的快捷方式。比如第一篇文章“l(fā)inux入門(mén)系列1--環(huán)境準(zhǔn)備及l(fā)inux安裝”講解安裝虛擬機(jī)VMware時(shí),相應(yīng)的文件安裝在指定的盤(pán)符下,同時(shí)會(huì)在桌面和菜單中創(chuàng)建快捷方式,這樣每次啟動(dòng)虛擬機(jī)只需要點(diǎn)擊桌面快捷方式即可,而無(wú)需每次找到對(duì)應(yīng)的盤(pán)符,然后在進(jìn)入目錄點(diǎn)擊相應(yīng)的運(yùn)行文件。

快捷方式的好處顯而易見(jiàn),同樣Linux系統(tǒng)中也存在快捷方式,只是Linux中的快捷方式和Windows中的快捷方式有些區(qū)別。

Windows中額快捷方式是指向原始文件的一個(gè)連接文件,原文件一旦刪除或移動(dòng)位置就會(huì)導(dǎo)致快捷方式的連接失效。但是在Linux中鏈接卻分為兩種:軟鏈接硬鏈接

  • 軟鏈接

也稱為符號(hào)連接(symbolic link),僅僅包含所鏈接文件的路徑名,可以連接目錄文件,也可以跨越文件系統(tǒng)進(jìn)行鏈接。與Windows中的快捷方式類(lèi)似,刪除原始文件后,鏈接文件將失效。

  • 硬鏈接

硬鏈接與原始文件是同一個(gè)文件,只是名字不同而已,每添加一個(gè)硬鏈接,該文件的inode連接數(shù)就會(huì)加1,并且只有當(dāng)該文件的連接數(shù)為0時(shí)才算徹底刪除文件。簡(jiǎn)單說(shuō)就是硬鏈接實(shí)際是指向原文件的指針,即便刪除原始文件,依然可以通過(guò)硬鏈接文件來(lái)訪問(wèn)。不能跨分區(qū)對(duì)目錄文件進(jìn)行鏈接。

1.2.2 Linux軟、硬鏈接創(chuàng)建

創(chuàng)建鏈接采用ln命令,語(yǔ)法格式為:ln [選項(xiàng)] 目標(biāo)文件 鏈接名稱

常見(jiàn)參數(shù)如下表,更多參數(shù)及用法請(qǐng)使用“man ln”命令查看。

參數(shù) 作用
-s symbolic,創(chuàng)建符號(hào)連接,如果不帶此參數(shù)默認(rèn)創(chuàng)建硬鏈接
-f force,強(qiáng)制創(chuàng)建文件或目錄的鏈接
-i 覆蓋前先詢問(wèn)

案例:

(1)創(chuàng)建軟鏈接并刪除原文件,驗(yàn)證能否查看鏈接文件

[root@heimatengyun test]# mkdir testln
[root@heimatengyun test]# cd testln/
[root@heimatengyun testln]# echo "symbolic link">slink
[root@heimatengyun testln]# ln -s slink slink.ln
[root@heimatengyun testln]# cat slink
symbolic link
[root@heimatengyun testln]# cat slink.ln 
symbolic link
[root@heimatengyun testln]# ll
total 4
-rw-r--r--. 1 root root 14 Dec 26 23:23 slink
lrwxrwxrwx. 1 root root  5 Dec 26 23:24 slink.ln -> slink
[root@heimatengyun testln]# rm -f slink
[root@heimatengyun testln]# cat slink.ln 
cat: slink.ln: No such file or directory
[root@heimatengyun testln]# ls
slink.ln
[root@heimatengyun testln]# rm slink.ln 
rm: remove symbolic link ‘slink.ln’? y
[root@heimatengyun testln]# ls
[root@heimatengyun testln]# 

先創(chuàng)建testln文件夾,并切換到該文件夾下創(chuàng)建slink原始文件,然后創(chuàng)建slink文件的軟鏈接slink.ln。查看文件發(fā)現(xiàn)引用量為1,并且鏈接文件會(huì)有箭頭標(biāo)識(shí)。此時(shí)刪除原始文件slink,然后鏈接文件slink.lnye 也不能訪問(wèn)。雖然文件不能訪問(wèn)但是文件還存在,可以手動(dòng)刪除它。

(2)創(chuàng)建硬鏈接并刪除原文件,驗(yàn)證能否查看鏈接文件

[root@heimatengyun testln]# ls
[root@heimatengyun testln]# echo "hard link">hlink
[root@heimatengyun testln]# ln hlink hlink.ln
[root@heimatengyun testln]# cat hlink
hard link
[root@heimatengyun testln]# cat hlink.ln 
hard link
[root@heimatengyun testln]# ll
total 8
-rw-r--r--. 2 root root 10 Dec 26 23:30 hlink
-rw-r--r--. 2 root root 10 Dec 26 23:30 hlink.ln
[root@heimatengyun testln]# rm -f hlink
[root@heimatengyun testln]# cat hlink.ln 
hard link
[root@heimatengyun testln]# ll
total 4
-rw-r--r--. 1 root root 10 Dec 26 23:30 hlink.ln

先創(chuàng)建hlink原始文件,然后hlink文件的硬鏈接hlin.ln文件,查看文件引用量顯示為2,并且不會(huì)像軟連接一樣有箭頭標(biāo)識(shí)。刪除原文件,鏈接文件依然能正常訪問(wèn),再次查看文件的應(yīng)用量已經(jīng)變?yōu)?。

1.3 物理硬件設(shè)備命名規(guī)則

硬件設(shè)備在Linux中是以文件形式進(jìn)行定義和管理,而文件需要命名規(guī)范,udev設(shè)備管理器在/dev/目錄下為所有的設(shè)備定義了內(nèi)核設(shè)備的名稱,它是當(dāng)前Linux默認(rèn)的設(shè)備管理工具,以守護(hù)進(jìn)程的形式運(yùn)行,通過(guò)偵聽(tīng)內(nèi)核發(fā)出來(lái)的uevent 來(lái)管理/dev目錄下的設(shè)備文件。通過(guò)命名規(guī)范目的是讓用戶通過(guò)設(shè)備文件的名字即可猜出設(shè)備大致的屬性以及分區(qū)信息等。

Linux系統(tǒng)中常見(jiàn)的硬件設(shè)備文件名稱如下:

硬件設(shè)備 文件名稱
IDE設(shè)備 /dev/hd[a-d]
SCSI/SATA/U 盤(pán) /dev/sd[a-p]
軟驅(qū) /dev/fd[0-1]
打印機(jī) /dev/lp[0-15]
光驅(qū) /dev/cdrom
鼠標(biāo) /dev/mouse
磁帶機(jī) /dev/st0 或/dev/ht0

常用的也就SCSI/SATA硬盤(pán)或光驅(qū),當(dāng)進(jìn)行磁盤(pán)擴(kuò)容等空間管理時(shí)會(huì)用到磁盤(pán)設(shè)備,當(dāng)安裝光盤(pán)鏡像時(shí)會(huì)用到光驅(qū)設(shè)備。

硬盤(pán)設(shè)備一般以“/dev/sd”開(kāi)頭,而一臺(tái)主機(jī)上可以有多塊硬盤(pán),因此系統(tǒng)采用 a~p 來(lái)代表 16 塊不同的硬盤(pán),默認(rèn)從a開(kāi)始分配。分區(qū)編號(hào)也有一定規(guī)則:主分區(qū)或擴(kuò)展分區(qū)的編號(hào)從 1- 4 ,而邏輯分區(qū)從5開(kāi)始編號(hào)。

假設(shè)一個(gè)設(shè)備文件名為:/dev/sda5,我們?cè)敿?xì)分析下該設(shè)備文件名包含哪些信息?

file

/dev/目錄中保存的應(yīng)當(dāng)是硬件設(shè)備文件;sd 表示是存儲(chǔ)設(shè)備;a 表示 系統(tǒng)中同類(lèi)接口中第一個(gè)被識(shí)別到的設(shè)備;5 表示這個(gè)設(shè)備是一個(gè)邏輯分區(qū)。一句話描述:這是系統(tǒng)中第一塊被識(shí)別到的硬件設(shè)備中分區(qū)編號(hào)為5的邏輯分區(qū)的設(shè)備文件。

再來(lái)看一下另外一個(gè)例子,查看本機(jī)掛載的磁盤(pán)設(shè)備

[root@heimatengyun ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
...省略部分內(nèi)容
/dev/sda1                497M  119M  379M  24% /boot

/dev/sda1表示這是系統(tǒng)中第一塊被識(shí)別到的硬件設(shè)備中分區(qū)編號(hào)為1的主分區(qū)的設(shè)備文件。

1.4 Linux文件系統(tǒng)類(lèi)型

文件系統(tǒng)的作用是合理規(guī)劃硬盤(pán),用戶在硬件存儲(chǔ)設(shè)備中執(zhí)行的文件建立、寫(xiě)入、讀取、修改、轉(zhuǎn)存與控制等操作都是依 靠文件系統(tǒng)來(lái)完成的。

Linux系統(tǒng)支持?jǐn)?shù)十種的文件系統(tǒng),常見(jiàn)的有以下幾種:

文件系統(tǒng) 描述
Ext3 是一款日志文件系統(tǒng),能夠在系統(tǒng)異常宕機(jī)時(shí)避免文件系統(tǒng)資料丟失,并能 自動(dòng)修復(fù)數(shù)據(jù)的不一致與錯(cuò)誤。缺點(diǎn)是當(dāng)硬盤(pán)容量很大時(shí),修復(fù)時(shí)間長(zhǎng)
Ext4 改進(jìn)版的Ext3,是RHEL6默認(rèn)的文件管理系統(tǒng),存儲(chǔ)容量達(dá)到1EB,讀寫(xiě)效率比Ext3極大的提高
XFS 是一種高性能的日志文件系統(tǒng),是RHEL7默認(rèn)的文件管理系統(tǒng),優(yōu)點(diǎn)是意外宕機(jī)后恢復(fù)非???,并且支持最大存儲(chǔ)容量為18EB

拿到一塊新的硬盤(pán)存儲(chǔ)設(shè)備后,需要先分區(qū),然后再格 式化文件系統(tǒng),最后才能掛載并正常使用。硬盤(pán)的分區(qū)操作取決于需求和硬盤(pán)大小,也可以選擇不進(jìn)行分區(qū),但是必須對(duì)硬盤(pán)進(jìn)行格式化處理。

剛說(shuō)到Linux系統(tǒng)支持?jǐn)?shù)十種文件系統(tǒng),其實(shí)每種文件系統(tǒng)底層操作肯定有很多區(qū)別,但是為了讓用戶在讀取和寫(xiě)入文件是不用關(guān)心底層的硬盤(pán)結(jié)構(gòu),Linux內(nèi)核中的軟件層為用戶程序提供 了一個(gè)VFS接口(Virtual File System),這個(gè)接口封裝了底層文件系統(tǒng)的特性和細(xì)節(jié),這樣用戶實(shí)際上在操作文件時(shí)就是統(tǒng)一對(duì)這個(gè)VFS進(jìn)行操作,從而不必關(guān)心每種文件系統(tǒng)的不同。

VFS架構(gòu)示意圖如下:

file

1.5 mount命令掛載硬件設(shè)備

相信大家都在windows上使用過(guò)移動(dòng)硬盤(pán)或U盤(pán),即插即用,無(wú)須其他操作非常方便。但實(shí)際上windows其實(shí)是悄悄幫我們做了很多事情,才使得我們能訪問(wèn)新插入的設(shè)備。在Linux系統(tǒng)中當(dāng)我們拿到一塊全新的硬盤(pán)后,我們需要先分區(qū)、格式化、然后才是掛載使用。

此處提到的掛載其實(shí)就是當(dāng)需要使用硬盤(pán)設(shè)備或分區(qū)中的數(shù)據(jù)時(shí),先將其與一個(gè)已存在的目錄文件進(jìn)行關(guān)聯(lián)的過(guò)程。掛載和取消掛載主要用到兩個(gè)命令:mount、umount。下面分別進(jìn)行介紹。

1.5.1 mount命令

語(yǔ)法:

? mount [參數(shù)] 文件系統(tǒng) 掛載目錄

參數(shù):

參數(shù) 作用
-a 掛載所有在/etc/fstab 中定義的文件系統(tǒng)
-t 指定文件系統(tǒng)的類(lèi)型

其中-a參數(shù),它會(huì)在執(zhí)行后自動(dòng)檢查 /etc/fstab 文件中有無(wú)疏漏被掛載的設(shè)備文件,如果有,則進(jìn)行自動(dòng)掛載操作。而-t參數(shù)相對(duì)于較新的Linux系統(tǒng)來(lái)說(shuō)無(wú)須指定,系統(tǒng)會(huì)自動(dòng)進(jìn)行判斷。

案例:

(1)把設(shè)備/dev/sdb2掛載到/test目錄

在 mount 命令中填寫(xiě)設(shè)備與掛載目錄參數(shù)即可,系統(tǒng)會(huì)自動(dòng)去判斷要掛載文件的類(lèi)型。

[root@heimatengyun ~]# mount /dev/sdb2 /backup

說(shuō)明:此處只是為了說(shuō)明mount命令的用法,實(shí)際上此時(shí)并沒(méi)有加入sdb第二塊硬件設(shè)備,因此如果立刻執(zhí)行此命令可能不會(huì)成功。下一節(jié)“添加硬盤(pán)”實(shí)戰(zhàn)將完整演示如何將一塊新的磁盤(pán)設(shè)備掛載到系統(tǒng)中。

執(zhí)行上邊mount命令后設(shè)備即可掛載成功,但是這是臨時(shí)的,當(dāng)系統(tǒng)重啟后掛載就會(huì)失效,需要每次開(kāi)機(jī)都手動(dòng)掛載一下,這比較麻煩。我們可以通過(guò)將掛載信息按指定格式寫(xiě)入/etc/fstab文件,這樣硬件設(shè)備就會(huì)在每次開(kāi)機(jī)后自動(dòng)進(jìn)行關(guān)聯(lián)。

下面我們研究下該fstab文件的內(nèi)容和格式:

[root@heimatengyun ~]# cat /etc/fstab 
...省略注釋部分
/dev/mapper/centos-root /                       xfs     defaults        1 1
UUID=bfd83b27-ed2b-4770-8d17-9e5412f2be27 /boot                   xfs     defaults        1 2
/dev/mapper/centos-swap swap                    swap    defaults        0 0

可以看到,其格式固定為: “設(shè)備文件 掛載目錄 格式類(lèi)型 權(quán)限選項(xiàng) 是否備份 是否自檢

各個(gè)自動(dòng)含義如下表:

字段 含義
設(shè)備文件 一 般 為 設(shè) 備 的 路 徑 + 設(shè) 備 名 稱 , 也 可 以 寫(xiě) 唯 一 識(shí) 別 碼 ( UUID , Universally Unique Identifier)
掛載目錄 指定要掛載到的目錄,需在掛載前創(chuàng)建好
格式類(lèi)型 指定文件系統(tǒng)的格式,比如 Ext3、Ext4、XFS、SWAP、iso9660(此為光盤(pán)設(shè)備)等
權(quán)限選項(xiàng) 若設(shè)置為 defaults,則默認(rèn)權(quán)限為:rw, suid, dev, exec, auto, nouser, async
是否備份 若為 1 則開(kāi)機(jī)后使用 dump 進(jìn)行磁盤(pán)備份,為 0 則不備份
是否自檢 若為 1 則開(kāi)機(jī)后自動(dòng)進(jìn)行磁盤(pán)自檢,為 0 則不自檢

學(xué)習(xí)fstab文件格式后,我們便可以將上邊通過(guò)命令掛載的/dev/sdb2設(shè)備信息寫(xiě)入fstab文件,使其永久生效。

假設(shè)文件系統(tǒng)類(lèi)型為ext4,保持默認(rèn)全選無(wú)須開(kāi)機(jī)自檢,則在fstab文件添加如下一行即可。

/dev/sdb2 /test ext4 defaults 0 0
1.5.2 umount命令

umount 命令用于撤銷(xiāo)已經(jīng)掛載的設(shè)備文件。掛載文件系統(tǒng)的目的是為了使用硬件資源,而卸載文件系統(tǒng)就意味不再使用硬件的設(shè)備資源。掛載操作就是把硬件設(shè)備與目錄進(jìn)行關(guān)聯(lián)的動(dòng)作,因此卸載操作只需要說(shuō)明想要 取消關(guān)聯(lián)的設(shè)備文件或掛載目錄的其中一項(xiàng)即可。

語(yǔ)法:

? umount [掛載點(diǎn)/設(shè)備文件]

案例:

? 假設(shè)卸載掉前邊掛載的/dev/sdb2設(shè)備,命令如下:

[root@heimatengyun ~]# umount /dev/sdb2

1.6 du命令查看目錄或文件大小

我們使用du命令查看一個(gè)或多個(gè)文件占用了多大的硬盤(pán)空間。

語(yǔ)法:

? du [選項(xiàng)] [文件或目錄](méi)

選項(xiàng):

參數(shù) 作用
-h human-readable,已人類(lèi)可讀的方式顯示單位(K、M、G等)
-s summarize,僅顯示后邊參數(shù)的總數(shù)

案例:

(1)使用du命令查看目錄大小

以我本機(jī)的test目錄為例,其中有目錄有文件,如下圖:

[root@heimatengyun ~]# ll test/
total 104
-rw-rwxr--+ 1 root root 135 Dec  1 23:26 case.sh
-rw-rwxr--+ 1 root root 219 Dec  2 23:57 function.sh
-rw-rwxr--+ 1 root root  91 Dec  2 21:55 getsum.sh
-rw-rwxr--+ 1 root root  85 Dec  2 21:48 greeting.sh
-rwxrwxrwx+ 1 root root  53 Dec  1 09:22 hello.sh
-rw-rwxr--+ 1 root root 186 Dec  1 23:11 if.sh
-rwsrwxrwx+ 1 root root 145 Dec  1 16:06 mypid.sh
-rw-rwxr--+ 1 root root 142 Dec  3 00:18 para.sh
-rw-rwxr--+ 1 root root 338 Dec  1 16:00 pid.sh
-rw-rwxr--+ 1 root root  99 Dec  1 15:22 sum.sh
drwxrwxrwx+ 2 test test  29 Dec 20 14:52 test1
-rw-rwxr--+ 1 root root   9 Nov 30 20:43 test1.txt
-rw-rwxr--+ 1 root root   0 Nov 30 15:34 test2.txt
drwxr-xr-x. 2 root root  21 Dec 26 23:31 testln
-rw-rwxr--+ 1 root root 139 Dec  2 23:55 while.sh

接下來(lái),我們看下不同參數(shù)的作用

[root@heimatengyun ~]# du test/
20      test/test1
4       test/testln
132     test/
[root@heimatengyun ~]# du -s test/
132     test/
[root@heimatengyun ~]# du -sh test/
132K    test/

通過(guò)以上案例,我們可以看到,僅僅可以看到test目錄下的一級(jí)目錄大小,如果加-s參數(shù)則僅僅能看到自身目錄大小,如果加-h參數(shù)則可以看到添加了單位k。

如何查看目錄下所有內(nèi)容呢?

(2)查看目錄包括文件和目錄的所有內(nèi)容的大小

[root@heimatengyun ~]# du test/*
8       test/case.sh
8       test/function.sh
8       test/getsum.sh
8       test/greeting.sh
8       test/hello.sh
8       test/if.sh
8       test/mypid.sh
8       test/para.sh
8       test/pid.sh
8       test/sum.sh
20      test/test1
8       test/test1.txt
4       test/test2.txt
4       test/testln
8       test/while.sh
[root@heimatengyun ~]# du -s test/*
8       test/case.sh
8       test/function.sh
8       test/getsum.sh
8       test/greeting.sh
8       test/hello.sh
8       test/if.sh
8       test/mypid.sh
8       test/para.sh
8       test/pid.sh
8       test/sum.sh
20      test/test1
8       test/test1.txt
4       test/test2.txt
4       test/testln
8       test/while.sh
[root@heimatengyun ~]# du -sh test/*
8.0K    test/case.sh
8.0K    test/function.sh
8.0K    test/getsum.sh
8.0K    test/greeting.sh
8.0K    test/hello.sh
8.0K    test/if.sh
8.0K    test/mypid.sh
8.0K    test/para.sh
8.0K    test/pid.sh
8.0K    test/sum.sh
20K     test/test1
8.0K    test/test1.txt
4.0K    test/test2.txt
4.0K    test/testln
8.0K    test/while.sh
[root@heimatengyun ~]# 

對(duì)比以上三個(gè)命令可以看出,如果命令后用*表示查看所有內(nèi)容,那么-s參數(shù)將失去意義,加與不加此參數(shù)效果都一樣。

1.7 df命令查看磁盤(pán)空間

df命令用戶查磁盤(pán)的掛載信息及空間占用情況。

語(yǔ)法:

? df [參數(shù)] [目錄](méi)

常用參數(shù):

參數(shù) 作用
-a all,顯示所有文件,包括虛擬文件系統(tǒng)
-h human-readable,以人類(lèi)可讀的方式大小,比如單位K,M,G等

案例:

(1)查看指定目錄掛載狀態(tài)及占用的磁盤(pán)空間

[root@heimatengyun ~]# df -h /newDisk/
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       2.0G   33M  2.0G   2% /newDisk

(2)查看所有一級(jí)目錄占用空間大小

[root@heimatengyun ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   18G  3.7G   14G  21% /
devtmpfs                 905M     0  905M   0% /dev
tmpfs                    914M   80K  914M   1% /dev/shm
tmpfs                    914M  8.9M  905M   1% /run
tmpfs                    914M     0  914M   0% /sys/fs/cgroup
/dev/sdb1                2.0G   33M  2.0G   2% /newDisk
/dev/sda1                497M  119M  379M  24% /boot

如果加-a參數(shù),則顯示所有的目錄

[root@heimatengyun ~]# df -ah
Filesystem               Size  Used Avail Use% Mounted on
rootfs                    18G  3.7G   14G  21% /
proc                        0     0     0    - /proc
sysfs                       0     0     0    - /sys
devtmpfs                 905M     0  905M   0% /dev
...省略部分內(nèi)容

具體參數(shù)可以通過(guò)man命令查看,并多多練習(xí)查看不同參數(shù)的不同結(jié)果。

二、添加硬盤(pán)

通過(guò)前面的學(xué)習(xí),我們已經(jīng)具備磁盤(pán)管理的能力,因此本節(jié)將模擬真實(shí)生產(chǎn)環(huán)境中對(duì)服務(wù)器添加磁盤(pán)設(shè)備進(jìn)行擴(kuò)容管理。

整體步驟為:在虛擬機(jī)中模擬添加入一塊新的硬盤(pán)存儲(chǔ)設(shè)備、分區(qū)、格 式化、掛載、檢查系統(tǒng)的掛載狀態(tài)、真實(shí)使用硬盤(pán)驗(yàn)證是否成功添加。

2.1 添加新磁盤(pán)

此過(guò)程我們?cè)谔摂M機(jī)中模擬添加一塊新的磁盤(pán)設(shè)備。

確保關(guān)閉虛擬機(jī)后,我們?cè)谔摂M機(jī)管理主界面單擊“編輯虛擬機(jī)設(shè)置”選項(xiàng)

file

在彈出框中單擊“添加按鈕”

file

選擇硬件類(lèi)型為“磁盤(pán)”

file

點(diǎn)擊“下一步”按鈕,在新彈出的對(duì)話框中,保持默認(rèn)的磁盤(pán)類(lèi)型為SCSI

file

點(diǎn)擊“下一步”按鈕,在新彈出對(duì)話中中保持默認(rèn)的“創(chuàng)建新的虛擬磁盤(pán)”

file

單擊“下一步”按鈕,在新彈出的界面中保持默認(rèn)的容量即可

file

單擊“下一步”按鈕,在新界面中選擇磁盤(pán)文件的保存位置,也可以保持默認(rèn)即可。

file

點(diǎn)擊“完成”按鈕,將返回虛擬機(jī)設(shè)置界面,并在此界面中可以看到剛才新添加的磁盤(pán)。

file

單擊“確定”按鈕,磁盤(pán)添加完成,并在虛擬機(jī)管理主界面中也可以看到剛才添加的新磁盤(pán)。

file

根據(jù)前面講解的物理設(shè)備命名規(guī)則,我們大膽猜想設(shè)備名稱應(yīng)該為sdb,表示是第二塊識(shí)別到的磁盤(pán)。后邊的步驟中,我們將驗(yàn)證這個(gè)猜想的正確性。

2.2 磁盤(pán)分區(qū)

正式分區(qū)之前,先介紹一下Linux的磁盤(pán)分區(qū)命令fdisk,它提供了集添加、刪除、轉(zhuǎn)換分區(qū)等功能于一身的全套服務(wù)。

語(yǔ)法:fdisk [磁盤(pán)名稱]

fdisk提供了交互式的參數(shù),可以根據(jù)需求動(dòng)態(tài)調(diào)整,常見(jiàn)參數(shù)如下:

參數(shù) 作用
m 查看全部可用的參數(shù)
n 添加新的分區(qū)
d 刪除某個(gè)分區(qū)信息
l 列出所有可用的分區(qū)類(lèi)型,所有磁盤(pán)信息包括未加載磁盤(pán)
t 改變某個(gè)分區(qū)的類(lèi)型
p 查看分區(qū)信息
w 保存并退出
q 不保存直接退出

除了fdisk之外,再介紹一個(gè)命令lsblk,這個(gè)命令可以列出所有可用塊設(shè)備的信息,而且還能顯示他們之間的依賴關(guān)系。

2.2.1 查看新添加的設(shè)備

學(xué)會(huì)fdisk和lsblk命令之后,我們先查看一下第一步新添加的磁盤(pán)信息(找出還沒(méi)有分區(qū)的設(shè)備)。

可以使用fdisk -l 命令查看,結(jié)果如下:

[root@heimatengyun ~]# fdisk -l
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
...省略部分內(nèi)容

也可以通過(guò)lsblk命令查看,結(jié)果如下:

[root@heimatengyun ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 19.5G  0 part 
  ├─centos-swap 253:0    0    2G  0 lvm  [SWAP]
  └─centos-root 253:1    0 17.5G  0 lvm  /
sdb               8:16   0   20G  0 disk 
sr0              11:0    1  3.9G  0 rom  

可以看到設(shè)備名稱為sdb,跟我們前面猜想的設(shè)備名稱吻合。

2.2.2 磁盤(pán)分區(qū)

使用fdisk命令管理/dev/sdb硬盤(pán)設(shè)備

通過(guò)參數(shù)p查看硬盤(pán)設(shè)備已有的分區(qū)信息,可以看到硬盤(pán)的容量大小、扇區(qū)個(gè)數(shù)等信息:

[root@heimatengyun ~]# fdisk /dev/sdb 
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xf69cc7c1.
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xf69cc7c1
   Device Boot      Start         End      Blocks   Id  System

通過(guò)n參數(shù)添加新分區(qū),接下來(lái)會(huì)提示創(chuàng)建主分區(qū)(p)還是擴(kuò)展分區(qū)(e),我們用參數(shù)p創(chuàng)建主分區(qū):

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p

接下來(lái)會(huì)讓輸入主分區(qū)編號(hào),我們采用默認(rèn)1,接下來(lái)會(huì)提示輸入扇區(qū)的起始位置,我們保持默認(rèn)直接按回車(chē)鍵,系統(tǒng)會(huì)自動(dòng)幫我們計(jì)算最靠前的空閑扇區(qū)位置。隨后提示我們輸入扇區(qū)結(jié)束位置,我們直接輸入+2G即可:

Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +2G
Partition 1 of type Linux and of size 2 GiB is set

這個(gè)扇區(qū)結(jié)束位置其實(shí)是定義整個(gè)分區(qū)的大小,我們無(wú)需計(jì)算扇區(qū)的個(gè)數(shù),直接輸入+2g即可創(chuàng)建一個(gè)容量為2GB的硬盤(pán)分區(qū)。

接下來(lái)我們?cè)俅斡胮參數(shù)查看剛才的分區(qū)信息:

Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xf69cc7c1
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux

這樣我們就可以看到名稱為/dev/sdb1的主分區(qū)信息了,可以看到它的起始扇區(qū)位置為2048,結(jié)束扇區(qū)位置為4196351。

此時(shí)通過(guò)w參數(shù)保存并回車(chē):

Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

這樣分區(qū)信息就寫(xiě)入成功,可以通過(guò)前文講解的fdisk -l命令或lsblk命令查看硬件設(shè)備的分區(qū)信息。

經(jīng)過(guò)上面的一些列操作之后,Linux 系統(tǒng)會(huì)自動(dòng)把這個(gè)硬盤(pán)主分區(qū)抽象成/dev/sdb1設(shè)備文件。下面我們就通過(guò)file命令進(jìn)行查看該設(shè)備文件。

2.2.3 查看分區(qū)設(shè)備文件

可以通過(guò)file命令查看文件該分區(qū)設(shè)備文件。在查看之前,我們先學(xué)習(xí)以下file命令

語(yǔ)法格式:file [參數(shù)選項(xiàng)] 目錄或文件

作用:辨識(shí)文件類(lèi)型

明確語(yǔ)法格式之后,我們用file命令查看剛才的分區(qū)文件/dev/sdb1設(shè)備文件類(lèi)型

[root@heimatengyun ~]# file /dev/sdb1
/dev/sdb1: block special

由此可見(jiàn),剛才添加分區(qū)的操作已經(jīng)成功了。

注意:有時(shí)候系統(tǒng)并沒(méi)有自動(dòng)把分區(qū)信息同步給Linux內(nèi)核,因此執(zhí)行上邊語(yǔ)句時(shí)可能得到的結(jié)果為:/dev/sdb1: cannot open (No such file or directory)。如果出現(xiàn)這種情況需要手動(dòng)執(zhí)行partprobe命令將分區(qū)信息同步到內(nèi)核中,并且建議是連續(xù)執(zhí)行兩次partprobe命令。如果執(zhí)行二次還是無(wú)效,可以直接重啟計(jì)算機(jī),重啟之后就可以了。

確認(rèn)分區(qū)設(shè)備文件成功之后,我們?cè)谘a(bǔ)充下file命令的案例:

[root@heimatengyun ~]# file test/
test/: directory
[root@heimatengyun ~]# file test/test1.txt 
test/test1.txt: ASCII text

可以看到file命令可以方便的查看出目錄或文件的類(lèi)型。

分區(qū)創(chuàng)建成功,接下來(lái)就要格式化磁盤(pán)。

2.3 磁盤(pán)格式化

如果硬件存儲(chǔ)設(shè)備沒(méi)有進(jìn)行格式化,Linux 系統(tǒng)無(wú)法得知怎么在其上寫(xiě)入數(shù)據(jù)。Linux中用于磁盤(pán)格式化的命令為mkfs。

語(yǔ)法格式:mkfs.文件系統(tǒng)類(lèi)型 設(shè)備分區(qū)文件

我們通過(guò)命令補(bǔ)齊命令可以查看到mkfs命令根據(jù)系統(tǒng)類(lèi)型分為不同的命令:

[root@heimatengyun ~]# mkfs
mkfs         mkfs.cramfs  mkfs.ext3    mkfs.fat     mkfs.msdos   mkfs.xfs
mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.minix   mkfs.vfat 

了解mkfs命令之后,我們使用xfs文件類(lèi)型將之前創(chuàng)建的分區(qū)/dev/sdb1進(jìn)行格式化:

[root@heimatengyun ~]# mkfs.xfs /dev/sdb1 
meta-data=/dev/sdb1              isize=256    agcount=4, agsize=131072 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=524288, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

這樣就完成了分區(qū)的格式,接下來(lái)對(duì)文件進(jìn)行掛載后就可以使用設(shè)備了。

2.4 掛載磁盤(pán)

掛載磁盤(pán)使用之前講解的mount命令,需要先創(chuàng)建一個(gè)掛載點(diǎn)目錄。

[root@heimatengyun ~]# mkdir /newDisk
[root@heimatengyun ~]# mount /dev/sdb1 /newDisk/
[root@heimatengyun ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   18G  3.7G   14G  21% /
devtmpfs                 905M     0  905M   0% /dev
tmpfs                    914M   80K  914M   1% /dev/shm
tmpfs                    914M  8.9M  905M   1% /run
tmpfs                    914M     0  914M   0% /sys/fs/cgroup
/dev/sda1                497M  119M  379M  24% /boot
/dev/sdb1                2.0G   33M  2.0G   2% /newDisk

掛載成功后,通過(guò)df -h命令即可查看到已經(jīng)掛載的設(shè)備。

接下來(lái)就可以使用新加的磁盤(pán)設(shè)備了。

切換到新加設(shè)備所在的目錄,添加文件并查看文件及其占用的大?。?/p>

[root@heimatengyun ~]# cd /newDisk/
[root@heimatengyun newDisk]# echo 'test'>test.txt
[root@heimatengyun newDisk]# ll
total 4
-rw-r--r--. 1 root root 5 Dec 28 18:57 test.txt
[root@heimatengyun newDisk]# du -sh /newDisk/
4.0K    /newDisk/

可以看到文件創(chuàng)建成功。

接下來(lái)使用df -h命令查看掛載狀態(tài)和硬盤(pán)使用量:

[root@heimatengyun ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   18G  3.7G   14G  21% /
devtmpfs                 905M     0  905M   0% /dev
tmpfs                    914M   80K  914M   1% /dev/shm
tmpfs                    914M  8.9M  905M   1% /run
tmpfs                    914M     0  914M   0% /sys/fs/cgroup
/dev/sdb1                2.0G   33M  2.0G   2% /newDisk
/dev/sda1                497M  119M  379M  24% /boot

可以看到磁盤(pán)掛載成功,至此,說(shuō)明新掛載的文件沒(méi)有任何問(wèn)題,可以正常使用。

到目前為止磁盤(pán)可以正常使用了,但是正如前面提到的mount命令掛載的設(shè)備需要寫(xiě)入fstab文件才能永久生效,因此我們編輯fstab文件將掛載信息寫(xiě)入:

[root@heimatengyun newDisk]# vi /etc/fstab 
...省略部分內(nèi)容,添加以下一行即可
/dev/sdb1   /newDisk xfs defaults 0 0

這樣就完成了新磁盤(pán)設(shè)備添加。

三、添加交換分區(qū)

交換分區(qū)(SWAP)是在硬盤(pán)中預(yù)先劃分一定的空間,當(dāng)真實(shí)物理內(nèi)存不夠用時(shí),將內(nèi)存中暫時(shí)不常用的數(shù)據(jù)臨時(shí)放到硬盤(pán)中,以便騰出物理內(nèi)存空間讓更活躍的程序服務(wù)來(lái)使用的技術(shù)。

但是需要注意的是,畢竟硬盤(pán)的讀寫(xiě)速度肯定比內(nèi)存man,所以也只有當(dāng)真實(shí)物理內(nèi)存耗盡后才會(huì)調(diào)用交換分區(qū)的資源。

交換分區(qū)的創(chuàng)建過(guò)程與掛載過(guò)程基本一致,前面添加的設(shè)備總大小為20G,/dev/sdb掛載使用了2G,此處添加一個(gè)4G的主分區(qū)作為交換分區(qū),過(guò)程如下:

3.1 創(chuàng)建分區(qū)

[root@heimatengyun ~]# fdisk /dev/sdb 
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (2-4, default 2): 
First sector (4196352-41943039, default 4196352): 
Using default value 4196352
Last sector, +sectors or +size{K,M,G} (4196352-41943039, default 41943039): +4G
Partition 2 of type Linux and of size 4 GiB is set
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xf69cc7c1
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352    12584959     4194304   83  Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@heimatengyun ~]# 

3.2 格式SWAP分區(qū)

交換分區(qū)格式化使用的命令與產(chǎn)品分區(qū)格式化有點(diǎn)區(qū)別,使用的是mkswap命令

[root@heimatengyun ~]# mkswap /dev/sdb2       
/dev/sdb2: No such file or directory
[root@heimatengyun ~]# partprobe

如果遇到上述情況,需要執(zhí)行partprobe或重啟即可

[root@heimatengyun ~]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=ef101e7c-e17d-42b7-8124-bed7c27a08e0

3.3 掛載分區(qū)

掛載SWAP分區(qū)使用的是swapon命令,注意普通分區(qū)使用mount。

先使用free 命令查看下交互分區(qū)的大小,然后再用swapon命令掛載SWAP分區(qū)設(shè)備,再次對(duì)比查看分區(qū)大小的變化:

[root@heimatengyun ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          1826        605       1221          8          1        219
-/+ buffers/cache:        383       1443
Swap:         2047          0       2047
[root@heimatengyun ~]# swapon /dev/sdb2 
[root@heimatengyun ~]# free -m          
             total       used       free     shared    buffers     cached
Mem:          1826        608       1218          8          1        219
-/+ buffers/cache:        386       1440
Swap:         6143          0       6143

可以看到,掛載后SWAP交換分區(qū)變大了,說(shuō)明掛載成功。

與普通分區(qū)掛載一樣,也需要將配置信息寫(xiě)入fstab文件使其開(kāi)啟自動(dòng)掛載,在fstab文件加入最后一行,注意文件系統(tǒng)各類(lèi)型為swap。

[root@heimatengyun ~]# vim /etc/fstab 
...省略部分內(nèi)容
/dev/sdb1 /newDisk xfs defaults 0 0
/dev/sdb2 swap swap defaults 0 0

這樣交換分區(qū)也就添加成功。

四、限定用戶磁盤(pán)容量

前文提到過(guò),Linux系統(tǒng)是多用戶多任務(wù)操作系統(tǒng),這就意味著可能有很多用戶同時(shí)在使用該操作系統(tǒng)。

但是服務(wù)器硬件資源是有限的,我們需要通過(guò)磁盤(pán)容量配額服務(wù)來(lái)限制某位用戶或某個(gè)用戶組針對(duì)特定文件夾可以使用的 最大硬盤(pán)空間或最大文件個(gè)數(shù),一旦達(dá)到這個(gè)最大值就不再允許繼續(xù)使用。

磁盤(pán)容量配額功能通過(guò)quota命令實(shí)現(xiàn),分為軟限制和硬限制,當(dāng)達(dá)到軟限制時(shí)提示用戶但仍可以使用,直到達(dá)到硬配額為止;而達(dá)到硬限制則直接不允許用戶在繼續(xù)使用。

4.1 開(kāi)啟quota支持

RHEL7已經(jīng)安裝quota 磁盤(pán)容量配額服務(wù)程序包,但存儲(chǔ)設(shè)備默認(rèn)沒(méi)有開(kāi)啟對(duì)quota 的支持,需要手動(dòng)編輯/etc/fstab配置文件。

在fstab配置文件中的掛載目錄/boot中添加uquota參數(shù)使其支持磁盤(pán)配額功能。

[root@heimatengyun ~]# vim /etc/fstab 
...省略部分內(nèi)容
UUID=bfd83b27-ed2b-4770-8d17-9e5412f2be27 /boot xfs  defaults,uquota 1 2
...省略部分內(nèi)容

重啟系統(tǒng),查看是否生效

[root@heimatengyun ~]# reboot
[root@heimatengyun ~]# mount |grep boot
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,usrquota)

可以看到包含了usrquota表明已經(jīng)生效。

4.2 xfs_quota命令

xfs_quota命令是一個(gè)專(zhuān)門(mén)針對(duì)XFS文件系統(tǒng)來(lái)管理quota磁盤(pán)容量配額服務(wù)而設(shè)計(jì)的命令。我們先了解一下xfs_quota命令的基本用法。

語(yǔ)法:

? xfs_quota [參數(shù)] 配額 文件系統(tǒng)

參數(shù):

參數(shù) 作用
-x 專(zhuān)家模式,可以對(duì)quota服務(wù)進(jìn)行更多復(fù)雜的配置
-c 于以參數(shù)的形式設(shè)置要執(zhí)行的命令

接下來(lái)我們使用 xfs_quota 命令來(lái)設(shè)置用戶對(duì)/boot 目錄的 quota 磁盤(pán)容量配額。

(1)先創(chuàng)建一個(gè)普通用戶:testquota,并對(duì)/boot目錄添加其他人寫(xiě)入的權(quán)限,保證用戶能正常寫(xiě)入數(shù)據(jù):

[root@heimatengyun ~]# useradd testquota
[root@heimatengyun ~]# chmod -Rf o+w /boot/

(2)限制testquota用戶磁盤(pán)使用量和創(chuàng)建文件的大小

具體的限額控制包括:硬盤(pán)使用量的軟限制和硬限制分別為1MB 和3MB;創(chuàng)建文件數(shù)量的軟限制和硬限制分別為2個(gè)和4個(gè)。

創(chuàng)建磁盤(pán)配額并查看設(shè)置是否成功:

[root@heimatengyun ~]# xfs_quota -x -c 'limit bsoft=1m bhard=3m isoft=2 ihard=4 testquota' /boot/
[root@heimatengyun ~]# xfs_quota -x -c report /boot/
User quota on /boot (/dev/sda1)
                               Blocks                     
User ID          Used       Soft       Hard    Warn/Grace     
---------- -------------------------------------------------- 
root            95328          0          0     00 [--------]
testquota           0       1024       3072     00 [--------]

創(chuàng)建成功后,切換到普通用戶并分別創(chuàng)建一個(gè)2M和4M的文件。(選擇2M的目的是剛好超過(guò)最小配額但又沒(méi)超過(guò)最大配額,而選擇4M則是超過(guò)了最大配額,這樣就能模擬出磁盤(pán)配額的效果)

[root@heimatengyun ~]# su - testquota 
[testquota@heimatengyun ~]$ dd if=/dev/zero of=/boot/testquota bs=2M count=1
1+0 records in
1+0 records out
2097152 bytes (2.1 MB) copied, 0.00166952 s, 1.3 GB/s
[testquota@heimatengyun ~]$ dd if=/dev/zero of=/boot/testquota bs=4M count=1 
dd: error writing ‘/boot/testquota’: Disk quota exceeded
1+0 records in
0+0 records out
3145728 bytes (3.1 MB) copied, 0.00411569 s, 764 MB/s
[testquota@heimatengyun ~]$ ll /boot/testquota 
-rw-rw-r--. 1 testquota testquota 3145728 Dec 28 21:07 /boot/testquota
[testquota@heimatengyun ~]$ exit
logout

可以看到2M的文件創(chuàng)建成功,但是4M的文件提示失敗了,說(shuō)明針對(duì)用戶的磁盤(pán)配額生效了。

4.3 edquota命令

edquota 命令用于編輯用戶的 quota 配額限制,在為用 戶設(shè)置了quota 磁盤(pán)容量配額限制后,可以使用edquota命令按需修改限額的數(shù)值。

語(yǔ)法:

? edquota [參數(shù)] [用戶]

參數(shù):

參數(shù) 作用
-u 要針對(duì)哪個(gè)用戶進(jìn)行設(shè)置
-g 要針對(duì)哪個(gè)用戶組進(jìn)行設(shè)置

edquota 命令會(huì)調(diào)用 Vi編輯器來(lái)讓 root 管理員修改要限制的具體細(xì)節(jié)。下面把 testquota用戶的硬盤(pán)使用量的硬限額從5M提升到8M:

[root@heimatengyun ~]# edquota -u testquota
Disk quotas for user testquota (uid 1002):
  Filesystem     blocks  soft       hard     inodes     soft hard
  /dev/sda1      3072    1024       3072          1        2 4

修改并保存即可。

本文介紹了Centos7系統(tǒng)中基本的磁盤(pán)管理技術(shù),下一篇將講解更高級(jí)一點(diǎn)的磁盤(pán)陣列RAID及LVM技術(shù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容