插件窝 干货文章 如何在Linux上设置磁盘配额

如何在Linux上设置磁盘配额

配额 文件 bash 用户 774    来源:    2025-04-16

在Linux上设置磁盘配额指南

磁盘配额(Quota)是Linux系统中限制用户或组使用磁盘空间的重要功能。以下是详细的设置步骤:

1. 准备工作

检查内核支持

grep CONFIG_QUOTA /boot/config-$(uname -r)

确保输出显示CONFIG_QUOTA=y

安装必要工具

# 对于Debian/Ubuntu
sudo apt-get install quota

# 对于RHEL/CentOS
sudo yum install quota

2. 启用文件系统配额支持

检查文件系统类型

df -hT

编辑/etc/fstab文件

找到需要启用配额的分区,在options字段添加usrquota,grpquota(用户和组配额):

/dev/sda1  /home  ext4  defaults,usrquota,grpquota  0  2

重新挂载文件系统

mount -o remount /home

检查是否生效

mount | grep home
# 应看到usrquota,grpquota选项

3. 初始化配额数据库

quotacheck -cugm /home
  • -c 创建配额文件
  • -u 用户配额
  • -g 组配额
  • -m 强制在已挂载文件系统上运行

4. 启用配额

quotaon -v /home

5. 设置配额限制

编辑用户配额

edquota -u username

将打开类似如下的编辑器:

Disk quotas for user username (uid 1001):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sda1                       24       10000      15000          4        0        0
  • blocks: 已使用的1K块数
  • soft: 软限制(警告阈值)
  • hard: 硬限制(绝对最大值)
  • inodes: 文件数量限制(可选)

复制配额设置到其他用户

edquota -p prototype_user user1 user2 user3

设置组配额

edquota -g groupname

6. 检查配额状态

查看用户配额

quota -u username

查看组配额

quota -g groupname

查看所有配额状态

repquota -a

7. 自动配额检查(可选)

在/etc/cron.daily/或/etc/cron.weekly/中创建脚本:

#!/bin/sh
quotacheck -avug

8. 配额宽限期设置(可选)

edquota -t

设置软限制超过后的宽限期(默认7天)

注意事项

  1. 配额仅对普通文件和目录有效,不适用于特殊文件(如设备文件)
  2. 根用户(root)不受配额限制
  3. 修改配额后可能需要重新挂载文件系统
  4. 对于XFS文件系统,使用xfs_quota命令而非标准配额工具

通过以上步骤,您可以有效地管理系统中的磁盘空间使用,防止单个用户或组占用过多存储资源。