xfs_quota 命令文档
概述
xfs_quota 是一个用于在 XFS 文件系统上管理和报告磁盘空间配额的工具。它支持用户、组和项目配额,允许管理员限制和监控磁盘使用量及 inode 数量。该工具支持交互模式和命令行模式。
语法
xfs_quota [ -x ] [ -c cmd ] ... [ -p prog ] [ path ... ]
基本用法
- 直接运行 xfs_quota 进入交互模式。
- 使用 -c 选项指定非交互命令。
- path 参数指定要管理的文件系统(例如 / 或 /home)。
选项
以下选项控制 xfs_quota 的行为:
| 选项 | 描述 |
|---|---|
| -c cmd | 指定非交互执行的命令。可使用多个 -c 选项来链式执行命令。 |
| -p prog | 设置错误消息的程序名称(默认:xfs_quota)。适用于脚本。 |
| -x | 启用专家模式,对修改配额设置的命令(例如设置限额、启用/禁用配额)必需。没有 -x,只能执行报告命令。 |
| -D file | 指定替代的 /etc/projects 文件,用于项目配额映射。 |
| -P file | 指定替代的 /etc/projid 文件,用于项目 ID 定义。 |
| -d defaults | 指定配额设置的默认文件(与 restore 或 dump 一起使用)。 |
解释:
- 专家模式 (-x):对管理任务(如设置或清除配额)至关重要。没有此选项,类似 limit、project -c 或 off 的命令会失败。
- 自定义文件 (-D, -P):在非标准环境或测试中管理配额时有用。
- 非交互模式 (-c):适合脚本或自动化任务。
子命令
xfs_quota 支持多种子命令,用于管理和报告配额。以下按功能分类列出所有子命令,并附解释。
配额报告
这些命令显示配额使用情况和限额。
| 子命令 | 描述 |
|---|---|
| report [-bir] [-gpu] [-ahnt] [-f file] | 报告用户(-u)、组(-g)或项目(-p)的配额信息。 |
| 列出启用了配额的文件系统。 | |
| `df [-bir] [-G | -P |
| `state [-g | -p |
report 和 df 的选项:
- -b:报告块使用量(默认)。
- -i:报告 inode 使用量。
- -r:报告实时分区使用量(如果适用)。
- -g, -p, -u:选择组、项目或用户配额。
- -a:报告所有启用了配额的文件系统。
- -h:人类可读输出(例如 1.2G 而非 1234567 块)。
- -n:显示数字 ID 而非名称。
- -t:按使用量排序输出。
- -f file:将输出写入文件而非 stdout。
- 针对 df:
- -G, -P, -U:按组、项目或用户配额过滤。
- -H:省略输出中的头部。
示例:
-
报告用户配额(人类可读格式):
xfs_quota -x -c 'report -u -h' / -
显示项目 ID #22 的配额:
xfs_quota -x -c 'report -p -h -L 22 -U 22' /
解释:
- report 是检查配额使用情况的主要命令,显示已用块/inode、软/硬限额及宽限期。
- print 用于识别哪些文件系统启用了配额。
- state 用于验证配额是否被强制执行或仅统计。
配额管理
这些命令修改配额设置,需启用专家模式(-x)。
| 子命令 | 描述 |
|---|---|
| `limit [-gpu] b{soft | hard}= i{soft |
| timer [-gpu] [-bir] | 设置超过软限额的宽限期(例如 7days)。 |
| enable [-gpu] [-v] | 启用用户、组或项目配额的强制执行。 |
| disable [-gpu] [-v] | 禁用配额强制执行,但保留统计功能。 |
| off [-gpu] [-v] | 完全禁用配额,包括统计功能。 |
| remove [-gpu] [-v] | 删除指定用户、组或项目的配额条目。 |
选项:
- -g, -p, -u:应用于组、项目或用户配额。
- -b, -i, -r:影响块、inode 或实时配额。
- bsoft, bhard:软/硬块限额。
- isoft, ihard:软/硬 inode 限额。
- :用户、组或项目名称/ID。
- -v:详细输出。
示例:
-
为用户 john 设置 10GB 硬块限额:
xfs_quota -x -c 'limit -u bhard=10g john' / -
为项目配额设置 7 天宽限期:
xfs_quota -x -c 'timer -p block 7days' / -
启用项目配额强制执行:
xfs_quota -x -c 'enable -p' /
解释:
- limit 用于强制限制磁盘使用量。
- timer 控制用户超过软限额的时间。
- enable/disable/off 切换配额强制执行级别,off 停止所有配额跟踪。
- remove 清除配额条目,适用于删除用户或项目。
项目配额管理
这些命令管理 XFS 项目配额,适用于特定目录或子树。
| 子命令 | 描述 |
|---|---|
| project -c [-r] [-P projid] | 清除目录或文件的项目 ID 分配。 |
| project -C [-r] [-P projid] | 强制清除项目 ID,即使被使用。 |
| project -s [-r] [-P projid] | 为目录或子树设置项目 ID。 |
| project -d [-P projid] | 限制设置/清除项目 ID 的递归深度。 |
| project -D | 从文件初始化项目配额。 |
选项:
- -c:清除项目 ID。
- -C:强制清除项目 ID。
- -s:设置项目 ID。
- -r:对目录递归操作。
- -P projid:指定项目 ID(例如 22)。
- -d :限制递归深度。
- -D :从文件加载项目定义。
示例:
-
清除目录的项目 ID #22:
xfs_quota -x -c 'project -c -P 22 /path/to/dir' / -
递归为目录设置项目 ID #10:
xfs_quota -x -c 'project -s -r -P 10 /path/to/dir' /
解释:
- 项目配额允许对特定目录树进行配额管理,适合共享存储或多租户系统。
- project -c 或 -C 是删除项目 ID 的关键命令,例如你的 ID #22。
- /etc/projects 和 /etc/projid 文件将项目 ID 映射到路径和名称。
配额备份与恢复
这些命令处理配额数据的导出和导入。
| 子命令 | 描述 |
|---|---|
| dump [-gpu] [-f file] | 将配额信息导出到文件以备份。 |
| restore [-gpu] [-f file] | 从文件恢复配额信息。 |
| quot [-gpu] [-bir] [-hn] [-f file] | 汇总所有用户、组或项目的配额使用情况。 |
选项:
- -g, -p, -u:应用于组、项目或用户配额。
- -b, -i, -r:报告块、inode 或实时使用量。
- -h:人类可读输出。
- -n:数字 ID。
- -f file:指定输入/输出文件。
示例:
-
导出用户配额到文件:
xfs_quota -x -c 'dump -u -f /backup/quotas.txt' / -
恢复项目配额:
xfs_quota -x -c 'restore -p -f /backup/quotas.txt' /
解释:
- dump 和 restore 用于迁移配额或恢复设置。
- quot 提供汇总视图,适合审计。
交互模式
| 子命令 | 描述 |
|---|---|
| quit | 退出交互模式。 |
| help | 显示命令帮助。 |
示例:
-
进入交互模式:
xfs_quota -
在提示符下运行命令,如 report -u 或 quit。
解释:
- 交互模式适合手动探索或管理配额。
配置文件
-
/etc/projects
:将项目 ID 映射到目录路径。
- 格式:projid:path
- 示例:22:/data/project1
-
/etc/projid
:定义项目名称和 ID。
- 格式:name:projid
- 示例:project1:22
解释:
- 这些文件对项目配额管理至关重要。
- 添加或删除项目 ID 时需更新这些文件。
注意事项
- 专家模式要求:修改配额的命令(例如 limit、project -c、enable)需要 -x。
- 文件系统支持:配额需在挂载时启用(例如 quota、pquota 挂载选项)。
- 宽限期:软限额允许暂时超限,由 timer 控制。
- 项目配额:需使用 project -s 为目录标记项目 ID。
常见用例
-
检查配额使用情况:
xfs_quota -x -c 'report -h -u' / -
设置用户配额:
xfs_quota -x -c 'limit -u bsoft=5g bhard=6g john' / -
删除项目 ID(例如 #22):
xfs_quota -x -c 'project -c -P 22' / -
启用配额
xfs_quota -x -c 'enable -p' /
故障排除
- 缺少 -x 导致命令失败:确保为管理任务启用专家模式。
- 无法删除项目 ID:检查是否仍有文件标记了项目 ID,使用 find / -xdev -ipath ‘projid=22’。
- 配额未强制执行:验证文件系统是否挂载了配额选项(mount | grep quota)。
- 项目命令错误:确保 /etc/projects 和 /etc/projid 配置正确。
5942

被折叠的 条评论
为什么被折叠?



