- 文档
- 教程
【免费下载链接】linux-command
Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux
导读
本文基于 linux-command 开源仓库(Linux 命令大全搜索工具,command/quotaon.md 文档)讲解quotaon命令的完整用法。quotaon用于激活 Linux 内核中指定文件系统的磁盘配额(quota)功能,是磁盘配额管理流程中"开关"环节的核心命令。读完本文,你将掌握quotaon的语法与选项含义、与quotacheck/edquota/quota/quotaoff等命令的配合关系,以及从/etc/fstab配置到配额正式生效的完整实操链路。
一、quotaon 在磁盘配额体系中的定位
Linux 磁盘配额(Disk Quota)用于限制用户(user)与群组(group)在指定文件系统上可占用的磁盘空间与文件数量。完整的配额管理通常涉及四个环节:
- 配置挂载选项:在
/etc/fstab中为分区加入usrquota、grpquota挂载参数; - 扫描生成配额文件:使用
quotacheck扫描文件系统,在分区根目录生成aquota.user、aquota.group(或旧格式quota.user、quota.group)配额数据库文件; - 激活配额功能:使用
quotaon打开内核的配额统计与限制机制; - 设定与查看限额:使用
edquota/setquota编辑限额,用quota/repquota查询使用情况,用quotaoff关闭配额。
quotaon处于第 3 步,其作用正如仓库文档所述:"执行 quotaon 指令可开启磁盘对用户和群组的空间使用限制"。仓库的 README.md 将quotaon归类于"磁盘管理"分类,与quota、quotacheck、quotaoff、repquota、edquota等命令并列,共同构成完整的配额管理工具链。
二、语法与选项详解
语法格式
quotaon(选项)(参数)选项说明
| 选项 | 作用 |
|---|---|
-a | 开启在/etc/fstab文件里加入了 quota 设置的分区的空间限制(即自动扫描所有声明了usrquota/grpquota挂载选项的文件系统) |
-g | 开启群组的磁盘空间限制 |
-u | 开启用户的磁盘空间限制 |
-v | 显示指令执行过程(verbose,输出每个文件系统的激活结果) |
参数
文件系统:指定要激活磁盘配额功能的文件系统(可写设备路径如/dev/hdb1,或挂载点如/disk2)。
需要特别注意的是:
-a与显式指定文件系统是两种互斥的使用方式:使用-a时不写文件系统参数,让系统按/etc/fstab自动匹配;不使用-a时则必须给出具体文件系统参数;- 单独使用
-g或-u表示只激活群组或只激活用户的配额,两者都写(-gu或-ug)则同时激活; - 实际运维中最常用的是组合参数
-avug,即"扫描/etc/fstab中所有带 quota 挂载选项的分区,同时激活用户与群组配额并输出详细过程"。
三、使用前提:必须存在 quotacheck 生成的配额文件
quotaon并非无条件生效。原文档明确指出:"在开启前,各分区的文件系统根目录必须存在通过 quotacheck 命令创建的 quota 配置文件"。也就是说,配额数据库文件是配额功能的数据基础,quotaon只是读取该文件并通知内核开始强制执行限额。
quotacheck 命令(详见仓库 command/quotacheck.md)通过扫描文件系统,计算每个用户识别码(UID)与群组识别码(GID)所占用的目录和文件数目,并在各分区文件系统根目录下产生配额数据库文件。典型执行方式:
quotacheck -avug quotacheck: Scanning /dev/hdb1 [/disk2] done quotacheck: Checked 3 directories and 4 files执行后可在分区根目录看到生成的文件:
ll /disk2 -rw------- 1 root root 6144 Sep 6 11:44 aquota.group -rw------- 1 root root 6144 Sep 6 11:44 aquota.user关于 journaled quota 的提示
如果你的内核支持日志型配额(journaled quota),执行quotacheck时可能出现如下提示:
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.此时可考虑将/etc/fstab中该文件系统的 quota 相关字段修改为:
usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv1然后重新挂载文件系统:
mount -vo remount 挂载目录需要注意:如果这一步操作出现问题,千万不要试图通过重启解决,将/etc/fstab配置恢复原状是更稳妥的选择(详见 command/quotacheck.md 的补充说明)。
四、完整实战:从 fstab 配置到配额正式生效
本节将仓库中 command/quota.md 的实战案例与quotaon的使用串联起来,演示配额功能的完整生命周期。假设场景:Linux 主机中有quser1、quser2两个用户,同属qgroup组,需对/disk2分区实施磁盘配额。
第 1 步:在 /etc/fstab 中加入配额挂载选项
[root@localhost ~]# vi /etc/fstab LABEL=/ / ext3 defaults 1 1 LABEL=/disk1 /disk1 ext3 defaults 1 2 LABEL=/disk2 /disk2 ext3 defaults,usrquota,grpquota 1 2 /dev/hda3 swap swap defaults 0 0注意defaults,usrquota,grpquota之间没有空格,务必正确书写。这样/disk2分区就带上了配额标记。
第 2 步:重新挂载使 fstab 配置生效
由于配额功能真正读取的是/etc/mtab文件,而它需要重新挂载后才能反映新的 fstab 数据,可执行:
[root@localhost ~]# umount /dev/hdb1 [root@localhost ~]# mount -a [root@localhost ~]# grep '/disk2' /etc/mtab /dev/hdb1 /disk2 ext3 rw,usrquota,grpquota 0 0也可以使用 mount 的 remount 功能,一步到位:
[root@localhost ~]# mount -o remount /disk2第 3 步:用 quotacheck 扫描并生成配额文件
[root@localhost ~]# quotacheck -avug quotacheck: Scanning /dev/hdb1 [/disk2] done quotacheck: Checked 3 directories and 4 files第 4 步:用 quotaon 激活配额功能
[root@localhost ~]# quotaon -avug /dev/hdb1 [/disk2]: group quotas turned on /dev/hdb1 [/disk2]: user quotas turned on看到输出turned on,配额功能才算真正激活成功。这一步就是quotaon命令的用武之地——内核自此开始对/disk2上的用户与群组执行空间限制。若未执行此步,即便生成了配额文件,限制也不会生效。
第 5 步:编辑用户与群组的限额
使用edquota(详见 command/edquota.md)编辑用户限额:
[root@localhost ~]# edquota -u quser1 Disk quotas for user quser1 (uid 502): Filesystem blocks soft hard inodes soft hard /dev/hdb1 0 45000 50000 0 0 0soft为软限制:在宽限期内允许暂时超过;hard为硬限制:绝对不可超过;- 单位为 KB,即此处 quser1 软限制 45 MB、硬限制 50 MB。
复制同一套配置给 quser2:
[root@localhost ~]# edquota -p quser1 quser2设定宽限时间(宽限期内必须将超出部分删除,否则将无法使用剩余空间):
[root@localhost ~]# edquota -t Grace period before enforcing soft limits for users: time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/hdb1 1days 7days编辑群组限额:
[root@localhost ~]# edquota -g qgroup Disk quotas for group qgroup (gid 502): Filesystem blocks soft hard inodes soft hard /dev/hdb1 0 80000 90000 0 0 0第 6 步:查询配额使用情况
[root@localhost ~]# quota -vu quser1 quser2 Disk quotas for user quser1 (uid 502): Filesystem blocks quota limit grace files quota limit grace /dev/hdb1 0 45000 50000 0 0 0 Disk quotas for user quser2 (uid 503): Filesystem blocks quota limit grace files quota limit grace /dev/hdb1 0 45000 50000 0 0 0由于用户尚未超过 45 MB 软限制,grace(宽限时间)一栏不会显示。群组查询同理:
[root@localhost ~]# quota -vg qgroup Disk quotas for group qgroup (gid 502): Filesystem blocks quota limit grace files quota limit grace /dev/hdb1 0 80000 90000 0 0 0如需以报表格式查看整个文件系统所有用户/群组的配额状况,可使用repquota -a(详见 command/repquota.md)。
五、关闭配额与日常维护
与quotaon对应的是quotaoff命令(详见 command/quotaoff.md),用于关闭指定文件系统的磁盘配额功能,选项结构完全对称:
| 选项 | 作用 |
|---|---|
-a | 关闭在/etc/fstab文件里加入了 quota 设置的分区的空间限制 |
-g | 关闭群组的磁盘空间限制 |
-u | 关闭用户的磁盘空间限制 |
-v | 显示指令执行过程 |
quotaoff -avug # 关闭所有配额分区的用户与群组配额 quotaoff -u /disk2 # 仅关闭 /disk2 的用户配额典型的维护场景包括:系统升级前临时关闭配额、修复配额数据库(需先quotaoff再quotacheck再quotaon)等。另外,在修改限额(edquota)之后无需重启配额,quotaon会直接读取更新后的配额数据库文件。
六、常见问题与排错要点
quotaon报错提示找不到配额文件:说明该分区的根目录下还没有通过quotacheck生成的aquota.user/aquota.group(或旧版quota.user/quota.group),先执行quotacheck生成文件再重试。配额文件为旧格式导致无法启动:某些旧版 quota 无法以
aquota.user/aquota.group启动,可以通过符号链接兼容(该做法并非必需,主要是理解其思路):cd /disk2 ln -s aquota.user quota.user ln -s aquota.group quota.group执行后没有
turned on输出:检查/etc/fstab的挂载选项中是否写入了usrquota/grpquota(注意拼写是usrquota而非userquota),并确认分区已按新配置重新挂载(/etc/mtab中已包含 quota 标记)。强制扫描已挂载文件系统:若文件系统正被使用导致
quotacheck报错,可使用quotacheck -avug -m强制扫描,随后再执行quotaon -avug。
七、小结
quotaon虽然只是磁盘配额管理链中的一个"开关"命令,但它决定了配额限制是否真正生效。正确用法是:先在/etc/fstab配置挂载选项 → 重新挂载 →quotacheck生成配额文件 →quotaon -avug激活 →edquota设定限额 →quota/repquota监控使用情况。本文涉及的完整命令手册均可在 linux-command 仓库中找到,包括 command/quota.md、command/quotacheck.md、command/edquota.md、command/quotaoff.md 与 command/repquota.md,适合作为日常运维的速查手册。
- 文档
- 教程
【免费下载链接】linux-command
Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux
相关推荐
Linux Command 项目中的 quotaoff 命令详解:Linux 磁盘配额功能的关闭与生命周期管理
Linux Command 项目中的 quotaoff 命令详解:Linux 磁盘配额功能的关闭与生命周期管理 导读 quotaoff 是 Linux 磁盘配额
文档教程Linux quota 命令详解:磁盘配额管理与限额实战指南
Linux quota 命令详解:磁盘配额管理与限额实战指南 导读 quota 是 Linux 系统中用于 显示用户或工作组磁盘已使用空间与配额限制 的核心命令
文档教程Linux 磁盘配额实战:edquota 命令详解与用户/组限额配置指南
Linux 磁盘配额实战:edquota 命令详解与用户/组限额配置指南 edquota 是 Linux 磁盘配额(quota)体系中负责"编辑配额数值"的核心
文档教程
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考