上一篇文章已經做了磁盤配額實踐的大概規划,下面我們就開始一步一步的來實踐一下。
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
編輯器的操作模式一樣進行修改,如下圖所示: