| ディスククォータを設定する2025/07/25 | 
| ディスククォータを設定して、ユーザー毎にディスクの使用量を制限します。 
例として、[/home] にマウントした XFS ファイルシステムに対してディスククォータを設定します。 | |
| [1] | マウントオプションを追加してクォータを有効にします。 | 
| # ユーザークォータとグループクォータのオプションを付加して再マウント [root@dlp ~]# umount /home  [root@dlp ~]# mount -o uquota,gquota /dev/sdb1 /home  
[root@dlp ~]#  vi /etc/fstab  # 起動時も有効となるようオプション追記 
UUID=4da11df8-5353-4848-bbab-12d0839d1004 /     xfs     defaults        0 0
UUID=7f5bcea8-81a4-48fe-81f0-c6ad8ee6da22 /boot xfs     defaults        0 0
UUID=972443ac-f8aa-4244-8ae8-f7eb46088b15 none  swap    defaults        0 0
/dev/sdb1               /home                   xfs     defaults,uquota,gquota 0 0
 | 
| [2] | クォータを設定します。例として [rocky] ユーザーにクォータを適用します。 | 
| # クォータツールをエキスパートモードで起動 [root@dlp ~]# xfs_quota -x /home  # 現在の状態を表示 xfs_quota> state  User quota state on /home (/dev/sdb1) Accounting: ON Enforcement: ON Inode: #131 (1 blocks, 1 extents) Blocks grace time: [7 days] Blocks max warnings: 0 Inodes grace time: [7 days] Inodes max warnings: 0 Realtime Blocks grace time: [7 days] Group quota state on /home (/dev/sdb1) Accounting: ON Enforcement: ON Inode: #132 (1 blocks, 1 extents) Blocks grace time: [7 days] Blocks max warnings: 0 Inodes grace time: [7 days] Inodes max warnings: 0 Realtime Blocks grace time: [7 days] Project quota state on /home (/dev/sdb1) Accounting: OFF Enforcement: OFF Inode: N/A Blocks grace time: [--------] Blocks max warnings: 0 Inodes grace time: [--------] Inodes max warnings: 0 Realtime Blocks grace time: [--------] # 設定状況のレポートを表示 xfs_quota> report -h User quota on /home (/dev/sdb1) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] redhat 12K 0 0 00 [------] rocky 12K 0 0 00 [------] Group quota on /home (/dev/sdb1) Blocks Group ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] redhat 12K 0 0 00 [------] rocky 12K 0 0 00 [------] # [rocky] ユーザーに Soft リミット 4G, Hard リミット 5G を設定 xfs_quota> limit bsoft=4g bhard=5g rocky # 設定確認 xfs_quota> report -h -u User quota on /home (/dev/sdb1) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] redhat 12K 0 0 00 [------] rocky 12K 4G 5G 00 [------] | 
| [3] | グループクォータを設定する場合は、以下のように [-g] オプションを付加します。 | 
| # 非対話モードでも設定可 [root@dlp ~]# xfs_quota -x -c 'limit -g bsoft=4g bhard=5g redhat' /home  xfs_quota -x -c 'report -h -g' /home  
Group quota on /home (/dev/sdb1)
                        Blocks
Group ID     Used   Soft   Hard Warn/Grace
---------- ---------------------------------
root            0      0      0  00 [------]
redhat        12K     4G     5G  00 [------]
rocky         12K      0      0  00 [------]
 | 
| [4] | Warnquota を設定すると、制限を超えて使用しているユーザーに警告メールを送信することができます。 メールを送信するため、SMTP サーバーが稼働していることが前提となります。 | 
| 
[root@dlp ~]#  vi /etc/quotatab  # クォータを設定したデバイスと要約を追記 
/dev/sdb1: Your Home Directory
 # メール送信元のドメイン名を修正 (自身のドメイン名に置き換え) [root@dlp ~]# sed -i -e "s/example\.com/localhost/g" /etc/warnquota.conf  [root@dlp ~]# sed -i -e "s/^FAIL/#FAIL/g" /etc/warnquota.conf  # warnquota 実行 [root@dlp ~]# warnquota -s  # warnquota 実行時に制限を超えているユーザーには以下のようなメールが送信される 
From: root@localhost
Reply-To: root@localhost
Subject: You are exceeding your allocated disk space limits
To: rocky@dlp.srv.world
Cc: root@localhost
Message-Id: <20250104025402.42391126051@dlp.srv.world>
Date: Sat, 4 Jan 2025 11:54:02 +0900 (JST)
Your disk usage has exceeded the agreed limits on this server
Please delete any unnecessary files on following filesystems:
Your Home Directory (/dev/sdb1)
                        Block limits               File limits
Filesystem           used    soft    hard  grace    used  soft  hard  grace
/dev/sdb1      +-   5120M   4096M   5120M  7days       9     0     0
root@localhost
 | 
| Sponsored Link | 
|  |