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