上一篇文章已經做了磁盤配額實踐的大概規划,下面我們就開始一步一步的來實踐一下。
1、手工建立一個5GB的分區
手工建立一個5GB的分區/dev/sdb2,掛載到/disk目錄下。
手工建立分區看之前使用fdisk命令進行手工分區文章可解決。
查看系統分區,可以看到/dev/sdb2分區已經掛載。

查看/dev/sdb2分區大小,約為5GB。
如下圖所示:

2、建立需要做限制的三個用戶
如下所示:
[root@localhost ~]# useradd user1
[root@localhost ~]# useradd user2
[root@localhost ~]# useradd user3
[root@localhost ~]# passwd user1
[root@localhost ~]# passwd user2
[root@localhost ~]# passwd user3
3、在分區上開啟磁盤配額功能
重新掛載/disk分區,並加入用戶和用戶組的磁盤配額功能,執行下面命令:
[root@localhost ~]# mount -o(開啟) remount(重新掛載),usrquota(用戶配額),grpquota(組配額) /disk
查看系統分區,我們可以看到命令生效了,/dev/sdb2分區已經增加了磁盤配額權限。

以上操作只是臨時生效,要想永久生效,則需要修改/etc/fstab文件,改成如下:
[root@localhost ~]# vi /etc/fstab
/dev/sdb1 /disk ext4 defaults,usrquota,grpquota 0 0
注意:
修改配置文件如果想要生效,必須重啟系統,否則需要把分區重新掛載一遍。
執行命令:[root@localhost ~]# mount -o remount /disk
4、建立磁盤配額的配置文件
需執行如下命令:
[root@localhost ~]# quotacheck [選項] [分區名]
選項:
-a:掃描/etc/mtab文件中所有啟用磁盤配額功能的分區。如果加入此參數,命令后面就不需要加入分區名了。-c:不管原有的配置文件,重新掃描並建立新的配置文件。-u:建立用戶配額的配置文件,也就是生成aquota.user文件。-g:建立組配額的配置文件,會生成aquota.group文件。-v:顯示掃描過程。-m:強制以讀寫的方式掃描文件系統,和-M類似。一般掃描根分區時使用。-f:強制掃描文件系統,並寫入新的配置文件。一般掃描新添加的硬盤分區時使用
常用選項:[root@localhost ~]# quotacheck -avug
提示:執行quotacheck命令前,需要關閉SELinux,否則會報錯。
執行命令:[root@localhost ~]# getenforce
getenforce命令是查詢當前系統下SELinux的狀態,Enforcing表示強制生效中。
- 關閉方式一(臨時)
[root@localhost ~]# getenforce 0(關)/1(開) - 關閉方式二(永久)
[root@localhost ~]# vim /etc/selinux/config(修改配置文件)

把Enforcing換成disabled,就是永久生效了。但是永久生效需要重啟系統。
使用臨時關閉方式,再次查看SELinux狀態
執行命令:[root@localhost ~]# getenforce
顯示Permissive,寬容的意思,就是我不會在管你,但是有危險操作會提醒你。
關閉SELinux,就可以執行quotacheck命令了,因為不用組配額,
執行命令:[root@localhost ~]# quotacheck -avu
結果如下:

出現了很多內容,但是命令已經生效了,Scanning /dev/sdb2 [/disk] done說明磁盤已掃描完成。其他內容說的是沒有找到一些舊文件。
我們進入/disk目錄,如果看到aquota.user文件,就說明用戶配額配置文件已經建立。(同理aquota.group代表組配額配置文件)

注意:如果需要給根分區開啟配額功能,需要進行如下操作:
# 開啟分區的配額功能
[root@localhost ~]# vi /etc/fstab
UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 / ext4 defaults,usrquota,grpquota 1 1
# 重新掛載分區
[root@localhost ~]# mount -o remount /
# 建立磁盤配額的配置文件的時候多加一個m選項
[root@localhost ~]# quotacheck -avum
說明:
如果我們自動掃描/分區建立配額配置文件時,因為/分區已經掛載成讀寫系統,而quotacheck需要把分區先掛載成只讀分區,然后建立配置文件,最后再掛載回來,所以不能直接在/分區建立配置文件。這時就需要使用-m強制以讀寫方式掃描文件系統。
5、開始設置用戶和組的配額限制
實現磁盤配的命令如下:
[root@localhost ~]# edquota [選項] [用戶名或組名]
選項:
-u用戶名:設定用戶配額。-g組名:設定組配額。-t:設定寬限時間。-p:復制配額限制。如果已經設定好某個用戶的配額限制,其他用戶的配額限制如果和這個用戶相同,那么可以直接復制配額限制,而不用都手工指定。
需求:我們給
user1用戶設定的配額限制是:磁盤空間軟限制是40MB,硬限制是50MB;文件個數的軟限制是8個,硬限制是11個(稍微小一點,一會測試時方便測試)。
執行命令:[root@localhost ~]# edquota -u user1
edquota命令進入之后,就是標准的vim操作方法,內容如下:
#磁盤配額是設定用戶user1(UID是500)
Disk quotas for user user1(uid 500):
#分區名 已占用容量 軟限制 硬限制 己占用文件數 軟限制 硬限制
Filesystem blocks soft hard inodes soft hard
/dev/sdb2 0 0 0 0 0 0
說明:
- 進入
edquota命令后的內容說明:針對user1用戶的磁盤配額,user1的用戶ID是500。user1針對/dev/sdb2分區進行磁盤配額,之后就是6項就是針對容量和文件數的配額設置。 - 特別注意:
blocks和inodes兩個選項一定不能手動修改,這兩項是系統檢測出來user1用戶在/dev/sdb2分區上所占用的空間和所占用的文件數。需要我們手動配置的是后兩項soft軟限制和hard硬限制。 - 提示:
[root@localhost ~]# edquota -u user1命令直接寫用戶名就可以,后邊不用接任何參數,不用你再指定哪個分區,因為哪些分區開啟了磁盤配額,再上面/etc/fstab文件中寫的很清楚。還有我們進入到edquota命令之后,開啟磁盤配額的分區情況都寫的很清楚,如上面內容。
開始進行配置,按照上面的需求配置如下:
Disk quotas for user user1(uid 500):
#分區名 已占用容量 軟限制 硬限制 己占用文件數 軟限制 硬限制
Filesystem blocks soft hard inodes soft hard
/dev/sdb2 0 40000 50000 0 8 11
# 注意:容量默認單位是KB。還有在修改文件的時候不用對齊,是七列就行。
退出方式和vim編輯器一樣。
6、啟動和關閉配額
(1)啟動配額
配額的配置完成,接下來只需要啟動配額就大功告成了。
啟動命令如下:
[root@localhost ~]# quotaon [選項] [分區名]
選項:
-a:依據/etc/mtab文件啟動所有的配額分區。如果不加-a,后面就一定要指定分區名。-u:啟動用戶配額。-g:啟動組配額。-v:顯示啟動過程的信息。
#啟動/disk 分區的配額
[root@localhost ~]# quotaon -avu /disk/
/dev/sdb2[/disk]:user quotas turned on(意思是針對/dev/sdb2分區的用戶配置已經開啟)
# 如果有組,還會有一條提示:/dev/sdb2[/disk]:group quotas turned on
(2)關閉配額
命令如下:
[root@localhost ~]# quotaoff [選項] [分區名]
選項
-a:依據/etc/mtab文件,關閉所有的配額分區。如果不加-a,后面就一定要指定分區名。-u:關閉用戶配額。-g:關閉組配額。
例如:依據/etc/mtab文件關閉配額分區。
執行命令:[root@localhost ~ ] # quotaoff -a
7、磁盤配額的查詢
(1)quota命令查詢用戶或用戶組配額:
[root@localhost ~]# quota [選項] [用戶名或組名]
選項:
-u用戶名:查詢用戶配額。-g組名:查詢組配額。-v:顯示詳細信息。-s:以習慣單位顯示容量大小,如M,G。
執行命令:[root@localhost ~]# quota -uvs user1
結果如下圖:

(2)repquota命令查詢分區的文件系統配額
[root@localhost ~]# repquota [選項] [分區名]
選項:
-a:依據/etc/mtab文件查詢配額。如果不加-a選項,就一定要加分區名。-u:查詢用戶配額。-g:查詢組配額。-v:顯示詳細信息。-s:以習慣單位顯示容量大小。
執行命令:[root@localhost ~]# repquota -auvs
結果如下圖:

可以看到上圖,在哪一個分區上,所有用戶的配額情況。
兩個命令,習慣用哪個都行。
8、對配置的磁盤配額進行測試
測試的前提,用user1用戶,進入到/disk目錄進行測試,user1用戶對/disk目錄要有讀寫權限。
執行命令:建立test文件,指定大小60MB。
[user1@localhost disk]$ dd if=/dev/zero of=/disk/test bs=1M count=60
命令說明:dd命令是做磁盤對拷的。其實可以把dd命令看成是cp命令,dd命令功能更多一些,比如可以指定復制文件的大小等。if表示源文件,of是目標文件,就是說要把if的文件復制到of的位置。bs是一次復制1MB,執行60次。這就是上邊命令的意思。
執行命令結果如下:

查看test文件的大小,可以看到test文件並沒有超過50MB。

我們再來查看一下user1用戶的磁盤配額

可以看到用戶的容量配額已經被占滿了。
文件個數的測試就不記錄了。
自己創建文件測試一下即可。
9、配額復制(擴展1)
user2用戶的配額值和user1用戶完全一樣,我們就可以使用user1用戶作為模板進行復制。這樣我們如果需要建立大量的配額值一致的用戶時,就會非常方便,不用一個個手工建立了。
配額復制命令如下:
# 命令 -p 源用戶 -u 目標用戶
[root@localhost ~]# edquota -p user1 -u user2
再來查看一下user2用戶的磁盤配額,發現user2用戶的磁盤配額已經被改變,和user1用戶的一樣了。

注意:
如果需要批量配置用戶的磁盤配額,這種方式也不太好用,因為你需要先有一個用戶配額模板,才可以批量配額給用戶。但是這個用戶模板需要手動創建,因為執行
edquota命令,進入磁盤配額編輯的時候是和vim操作一樣的,不能通過命令執行的,這點需要注意一下。下面的非交互設定用戶磁盤配額可以很好的解決上面問題。
10、非交互設定用戶磁盤配額(擴展2)
命令格式如下:
[root@localhost ~]# setquota -u 用戶名 容量軟限制 容量硬限制 個數軟限制 個數硬限制 分區名
執行命令如下:
# 建立用戶
[root@localhost ~]#useradd user3
[root@localhost ~]#passwd user3
#設定用戶在/disk 分區的容量軟限制為40MB,硬限制50MB。文件個數軟限制8個,硬限制10個。
[root@localhost ~]#setquota -u user3 40000 50000 8 10 /disk
再來查看一下user3用戶的磁盤配額,已經生效了。
如下圖所示:

這個命令在寫腳本批量設置時更加方便。當然寫腳本時也可以先建立一個模板的用戶,設定好磁盤配額,再進行配額復制,也是可以的。
來個小總結:配置磁盤配額的方式有三種
edquota命令方式,基本方式。- 配額復制的方式。
- 非交互設定用戶磁盤配額。
11、修改寬限時間
很簡單的,我們要求把寬限時間改為8天。
修改命令:[root@localhost ~]# edquota -t
和vim編輯器的操作模式一樣進行修改,如下圖所示:

