系统管理员经常需要限制各用户的硬盘空间, 以免硬盘被用尽。在 Linux 设定 Quota 已经不是什么新鲜事, 但可能因为设定 Quota 大多只在新安装系统才会做, 所以容易忘记。 以下会纪录一下在 RHEL 及 CentOS 8 设定 Quota 的步骤。
首先安装 quota:
# dnf -y install quota
安装好 quota 后, 需要确认分割区使用的档案系统, 可以用 df 查看, 例如我想设定 /home 分割区开启 Quota:
# df -h | grep /home
/dev/sda1 1.5T 240G 1.2T 17% /home
/dev/sda1 1.5T 240G 1.2T 17% /home
然后开启 /etc/fstab, 找到 /home 分割区那一行, 在 defaults 后面加入 uquota, gquota, 即改成类似这样:
|
1 |
/dev/sdb1 /home xfs defaults,uquota,gquota 0 0 |
接着执行以下指令重新挂载 /home 分割区, 以及进行 Quota 设定:
# umount /home
# mount -o uquota,gquota /dev/sdb1 /home
# xfs_quota -x /home
# mount -o uquota,gquota /dev/sdb1 /home
# xfs_quota -x /home
xfs_quota 是管理 XFS 档案系统的指令, 以下是检查现在 quota 限额的指令:
|
1 2 3 4 5 6 |
# xfs_quota -x -c 'report -h' /home User quota on /home (/dev/sda1) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 2.5G 0 0 00 [------] |
例如要设定用户 opencli 的 quota 为 1000M, 语法是这样:
# xfs_quota -x -c “limit bsoft=1000M bhard=1000M opencli” /home