CentOS防止磁盘空间不足的核心方法:磁盘配额管理
磁盘配额是限制用户或组在指定分区使用磁盘空间及文件数量的有效手段,可避免个别用户恶意或无意占用大量空间导致系统无法正常运行。以下是具体实现步骤:
grep CONFIG_QUOTA /boot/config-$(uname -r)CONFIG_QUOTA=y,则表示内核支持。xfsprogs(XFS文件系统工具)和quota(配额管理工具),若未安装可通过以下命令安装:sudo yum install -y xfsprogs quota。磁盘配额需在挂载时启用对应选项,仅对指定分区生效。
sudo umount /dev/vgname1/lvname1  # 卸载原分区sudo mount -o usrquota,grpquota /dev/vgname1/lvname1 /mnt/opt  # 添加usrquota(用户配额)、grpquota(组配额)选项。/etc/fstab文件,找到目标分区条目,在options字段添加usrquota,grpquota,例如:/dev/vgname1/lvname1 /mnt/opt xfs defaults,usrquota,grpquota 0 0sudo mount -o remount /mnt/opt使修改生效。挂载后需生成配额数据库(aquota.user记录用户配额,aquota.group记录组配额),命令如下:
sudo quotacheck -cvug /mnt/opt
-c:创建新的配额文件;-v:显示详细过程;-u:检查用户配额;-g:检查组配额。使用edquota命令编辑配额,分为用户配额和组配额:
sudo edquota -u username(如sudo edquota -u lz)bsoft:磁盘容量软限制(如80M=81920KB),超过后会触发警告(默认7天宽限期);bhard:磁盘容量硬限制(如100M=102400KB),超过后禁止继续写入;isoft:文件数量软限制(如8个);ihard:文件数量硬限制(如10个)。sudo edquota -g groupname(如sudo edquota -g lz),设置逻辑与用户配额一致,限制组内所有用户的总使用量。执行以下命令激活配额功能:
sudo quotaon /mnt/opt
若需关闭配额,可使用sudo quotaoff /mnt/opt。
sudo quota -u username(如sudo quota -u lz),显示用户已用容量、文件数及限制值。sudo quota -g groupname(如sudo quota -g lz)。sudo repquota -a(查看所有分区)、xfs_quota -x -c 'report -aibh'(XFS文件系统专用,显示容量和文件数详情)。除配额外,定期监控磁盘使用情况可提前发现问题,常用命令:
df -h:显示各分区总大小、已用空间、可用空间(人类可读格式);du -sh /path/to/dir:显示指定目录总大小(如du -sh /home);ncdu:交互式磁盘使用分析工具(需安装:sudo yum install ncdu),可快速定位大文件/目录。通过以上步骤,可有效限制用户/组对磁盘空间的占用,防止因空间不足导致系统故障。