quota 套件:rpm -q quota 或 yum install quota/dev/sdbfdisk -l
# 發現 /dev/sdb 為新增硬碟
fdisk /dev/sdb
# 依序輸入:
n # 新增分區
p # 主分區
1 # 分區號
[enter] # 起始磁柱(預設)
+2G # 大小 2GB
n # 新增分區
e # 擴展分區
2 # 分區號
[enter] # 起始
[enter] # 結束(佔用剩餘)
n # 邏輯分區
[enter] # 起始
+1G # 大小 1GB -> /dev/sdb5
n # 邏輯分區
[enter]
[enter] # 剩餘 -> /dev/sdb6
w # 寫入分區表並退出
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb5
mkfs.ext4 /dev/sdb6
/dev/sdb1 /quota1 ext4 defaults,usrquota,grpquota 0 0
/dev/sdb5 /quota2 ext4 defaults,usrquota,grpquota 0 0
/dev/sdb6 /quota3 ext4 defaults,usrquota,grpquota 0 0
usrquota:啟用使用者配額grpquota:啟用群組配額mkdir /quota1 /quota2 /quota3
mount -a
# 或重啟系統使 fstab 生效
quotacheck -cmuvg /quota1 /quota2 /quota3
# -c 建立新檔 -m 不重新掛載 -u 使用者 -g 群組 -v 詳細
# 產生 aquota.user、aquota.group
quotaon /quota1 /quota2 /quota3
# 關閉:quotaoff /quota1
# 使用者配額(編輯器模式)
edquota -u username
# 或非互動式
setquota -u username 100M 200M 0 0 /quota1 # soft 100M hard 200M 無 inode 限制
# 群組配額
edquota -g groupname
setquota -g groupname 500M 1G 0 0 /quota1
edquota -t
# 修改 time units(預設 7 天),單位可為 days/hours/minutes/seconds
# 切換至受限使用者
su - username
cd /quota1
dd if=/dev/zero of=test bs=1M count=150 # 寫入 150MB 超過 soft 100M
# 應收到警告但仍可寫入
dd if=/dev/zero of=test2 bs=1M count=100 # 累積超過 hard 200M
# 應報錯「Disk quota exceeded」
# 查看配額報表
quota -u username
repquota /quota1
| 欄位 | 含義 |
|---|---|
| filesystem | 受配額限制的檔案系統/分區 |
| blocks | 目前已使用的區塊數(1 block = 1KB) |
| inodes | 目前已使用的 inode 數(檔案數) |
| soft (blocks) | 區塊軟限制(可超過,進入寬限期) |
| hard (blocks) | 區塊硬限制(不可超過,寫入失敗) |
| soft (inodes) | inode 軟限制 |
| hard (inodes) | inode 硬限制 |
repquota -a 產出全系統報表prjquota(XFS/ext4 支援)按專案目錄限額,更靈活uquota,gquota,pquotasystemctl enable --now quotaonsystem-config-quota(舊)、Webmin、Cockpit遵循標準化流程建立磁碟配額,能有效防止單一使用者/服務佔滿磁碟導致全系統癱瘓。