Linux:quota磁盤配額設置

磁盤配額的概念

quota 磁盤配額功能只在指定的文件系統(分區)內有效,未設置配額的文件系統不受限制。
quota 針對指定的用戶帳號、組帳號進行限制,其餘用戶或組不受影響。
磁盤配額能夠進行兩方面的限制:
磁盤容量
文件數量
磁盤容量:限制用戶可以使用的磁盤數據塊(block)大小,也就是限制磁盤空間大小, 默認單位爲 KB。
文件數量:限制用戶可以擁有的文件個數。
磁盤配額的限制方法分爲軟限制和硬限制兩種。
軟限制:指設定一個軟性的配額數值(如 500MB 磁盤空間、200 個文件) ,在固定的寬限期(默 認爲 7 天)內容許暫時超過這個限制,但系統會給出警告信息。
硬限制:指設定一個硬性的配額數值(如 1GB 磁盤空間、500 個文件) ,並且絕對禁止用戶超 過該限值。硬限制的配額值應大於相應的軟限制值,不然軟限制值將失效。
舉例:
軟件限制爲:2G
硬限制爲:1Gnode

設置磁盤配額

啓用quota磁盤配額
# 首先要經過修改配置文件「/etc/fstab」的方式啓用 quota 磁盤配額。 
[root@localhost var]# vim /etc/fstab 
/dev/sdb1 /data ext4 defaults,usrquota,grpquota 0 0
# 將該文件系統從新掛載 
[root@localhost ~]# mount -o remount /data
# 執行 mount 命令查看已經掛載的文件系統,檢查是否已經啓用了 usrquota 和 grpquota 功能 
[root@localhost ~]# mount | grep sdb1 /dev/sdb1 on /data type ext4 (rw,usrquota,grpquota)
生成配額文件
# quotacheck 命令能夠對文件系統進行磁盤配額檢測,發現哪些文件系統啓用了 磁盤配額功能
並在這些文件系統中生成配額文件 aquota.user 和 aquota.group。 
[root@localhost ~]# quotacheck -cvug /data 

相關選項的做用:
-c,建立配額文件。 
-v,顯示詳細信息。 
-u,檢查用戶配額信息,建立 aquota.user 文件。 
-g,檢查組配額信息,建立 aquota.group 文件。

# 將 SELinux 設爲許可模式 
[root@localhost ~]# setenforce 0 
# 再次執行 quotacheck 命令
[root@localhost ~]# quotacheck -cvug /data
# 查看生成的配額文件 
[root@localhost ~]# ls /data 
aquota.group aquota.user lost+found
編輯用戶的配額設置
# 使用 edquota 命令結合「-u」、 「-g」選項可用於編輯用戶或組的配額設置。 
# 建立 financial 組,建立用戶 jerry,將 financial 指定爲 jerry 的基本組。 
[root@localhost ~]# edquota -u jerry  //設置用戶 jerry 的磁盤配額
# Filesystem:表示本行配置對應的文件系統(分區),即配額的做用範圍。 
# blocks:表示當前已使用的磁盤容量,默認單位爲 KB。該值由 edquota 程序自動計算生成。 
# soft:第 3 列中的 soft 對應爲磁盤容量的軟限制數值,默認單位爲 KB;
# 第 6 列中的 soft 對應爲文件數量的軟限制數值位爲個。 
# hard:第 4 列中的 hard 對應爲磁盤容量的硬限制數值,默認單位爲 KB;
# 默認單 第 7 列中的 hard 對應爲文件數量的硬限制數值,默認單位爲個;
# inodes:表示當前已擁有的文件數量。該值由 edquota 程序自動計算生成。
編輯組的配額設置
# 設置 financial 組的磁盤配額
[root@localhost ~]# edquota -g financial

# 配額設置僅對基本組生效。如用戶 jerry 所屬的基本組是「financial」,所屬的附加組是「technology」
# 那麼只有針對「financial」組設置的配額纔對 jerry 有效,而針對「technology」組設置的配額則對 jerry 沒有限制。
激活磁盤配額
# 激活「/data」文件系統的用戶、組配額 
[root@localhost ~]# quotaon -ugv /data
/dev/sdb1 [/data]: group quotas turned on 
/dev/sdb1 [/data]: user quotas turned on 
# 相關選項的做用: 
    -u,激活用戶磁盤配額。 
    -g,激活組磁盤配額。 
    -v,顯示詳細信息。
驗證並查看磁盤配額
# 下面使用受配額限制的用戶賬號(jerry)登陸 Linux 系統
# 並嚮應用了配額的文件系統進行復制文件等寫操做,測試所設置磁盤配額項是否有效
# 爲了方便測試,將 用戶 jery 的基本組設爲 financial,對用戶和組的磁盤配額功能一併進行測試。 
# 用 dd 命令生成指定大小的測試文件 

# 從設備文件/dev/zero 中複製數據到/home/jerry/test 文件,讀取 210 個大小爲 1MB 的數據塊
[root@localhost ~]# dd if=/dev/zero of=/mnt/data bs=1KB count=120 
記錄了 210+0 的讀入 
記錄了 210+0 的寫出 
220200960 字節(220 MB)已複製,13.3504 秒,16.5 MB/秒 
    
[root@localhost ~]# ll -h /home/jerry 
總用量 211M -rw-r--r--. 1 root root 210M 11 月 6 10:49 test
    
# 開放 data/的寫入權限 
[root@localhost ~]#chmod 777 /data

# 查看用戶或分區的配額使用狀況 
# 使用 quota 命令結合「-u」 、「-g」選項分別查看指定用戶和組的配額使用狀況。
# 執行 repquota /data 查看/data 文件系統的配額使用狀況報告
關閉磁盤配額

利用 quotaoff -vug 命令關閉磁盤配額vim

總結:

經過 quota 磁盤配額能夠方便地對單個用戶或用戶組的可用磁盤空間進行限制,使磁盤管理工做具備 更大的靈活性。測試

在生產環境中具體應用時還應注意,quota 是以每個使用者,每個文件系統爲基礎的,它不能跨 文件系統對用戶作出瞭如指掌,若是使用者可能在超過一個以上的系統中創建文件,那麼必須在每個文 件系統上分別設定 quota 配額。code

另外,因爲 root 用戶在 Linux 環境中具備至高無上的權限,因此沒法對 root 用戶設置配額。ci

相關文章
相關標籤/搜索