『學了就忘』Linux文件系統管理 — 64、磁盤配額的配置步驟


上一篇文章已經做了磁盤配額實踐的大概規划,下面我們就開始一步一步的來實踐一下。

1、手工建立一個5GB的分區

手工建立一個5GB的分區/dev/sdb2,掛載到/disk目錄下。

手工建立分區看之前使用fdisk命令進行手工分區文章可解決。

查看系統分區,可以看到/dev/sdb2分區已經掛載。

image

查看/dev/sdb2分區大小,約為5GB。

如下圖所示:

image

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分區已經增加了磁盤配額權限。

image

以上操作只是臨時生效,要想永久生效,則需要修改/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(修改配置文件)
    image
    Enforcing換成disabled,就是永久生效了。但是永久生效需要重啟系統。

使用臨時關閉方式,再次查看SELinux狀態

執行命令:[root@localhost ~]# getenforce

顯示Permissive,寬容的意思,就是我不會在管你,但是有危險操作會提醒你。

關閉SELinux,就可以執行quotacheck命令了,因為不用組配額,

執行命令:[root@localhost ~]# quotacheck -avu

結果如下:

image

出現了很多內容,但是命令已經生效了,Scanning /dev/sdb2 [/disk] done說明磁盤已掃描完成。其他內容說的是沒有找到一些舊文件。

我們進入/disk目錄,如果看到aquota.user文件,就說明用戶配額配置文件已經建立。(同理aquota.group代表組配額配置文件)

image

注意:如果需要給根分區開啟配額功能,需要進行如下操作:

# 開啟分區的配額功能
[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項就是針對容量和文件數的配額設置。
  • 特別注意:blocksinodes兩個選項一定不能手動修改,這兩項是系統檢測出來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

結果如下圖:

image

(2)repquota命令查詢分區的文件系統配額

[root@localhost ~]# repquota [選項] [分區名]

選項:

  • -a:依據/etc/mtab文件查詢配額。如果不加-a選項,就一定要加分區名。
  • -u:查詢用戶配額。
  • -g:查詢組配額。
  • -v:顯示詳細信息。
  • -s:以習慣單位顯示容量大小。

執行命令:[root@localhost ~]# repquota -auvs

結果如下圖:

image

可以看到上圖,在哪一個分區上,所有用戶的配額情況。

兩個命令,習慣用哪個都行。

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次。這就是上邊命令的意思。

執行命令結果如下:

image

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

image

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

image

可以看到用戶的容量配額已經被占滿了。

文件個數的測試就不記錄了。

自己創建文件測試一下即可。

9、配額復制(擴展1)

user2用戶的配額值和user1用戶完全一樣,我們就可以使用user1用戶作為模板進行復制。這樣我們如果需要建立大量的配額值一致的用戶時,就會非常方便,不用一個個手工建立了。

配額復制命令如下:

# 命令 -p 源用戶 -u 目標用戶
[root@localhost ~]# edquota -p user1 -u user2

再來查看一下user2用戶的磁盤配額,發現user2用戶的磁盤配額已經被改變,和user1用戶的一樣了。

image

注意:

如果需要批量配置用戶的磁盤配額,這種方式也不太好用,因為你需要先有一個用戶配額模板,才可以批量配額給用戶。但是這個用戶模板需要手動創建,因為執行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用戶的磁盤配額,已經生效了。

如下圖所示:

image

這個命令在寫腳本批量設置時更加方便。當然寫腳本時也可以先建立一個模板的用戶,設定好磁盤配額,再進行配額復制,也是可以的。

來個小總結:配置磁盤配額的方式有三種

  • edquota命令方式,基本方式。
  • 配額復制的方式。
  • 非交互設定用戶磁盤配額。

11、修改寬限時間

很簡單的,我們要求把寬限時間改為8天。

修改命令:[root@localhost ~]# edquota -t

vim編輯器的操作模式一樣進行修改,如下圖所示:

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM