17.2. 管理磁盘配额
如果实施了配额,它们主要需要一些维护,以便查看是否超过了配额,并确保配额是准确的。
如果用户重复超过配额,或者持续达到其软限制,系统管理员可根据用户类型以及影响其工作的空间数量而决定一些选择。管理员可以帮助用户决定如何使用较少的磁盘空间,或者增加用户的磁盘配额。
17.2.1. 启用和禁用
可以在不将其设置为 0 的情况下禁用配额。要关闭所有用户和组配额,请使用以下命令:
#
quotaoff -vaug
如果未指定
-u
或 -g
选项,则仅禁用用户配额。如果只指定 -g
,则只禁用组配额。-v 开关会在命令执行时显示详细状态信息。
要再次启用用户和组群配额,请使用以下命令:
#
quotaon
要为所有文件系统启用用户和组群配额,请使用以下命令:
#
quotaon -vaug
如果未指定
-u
或 -g
选项,则只启用用户配额。如果只指定 -g
,则只启用组配额。
要为特定文件系统(如
/home
)启用配额,请使用以下命令:
#
quotaon -vug /home
注意
XFS 并不总是需要 quotaon 命令,因为它是在挂载时自动执行的。如需更多信息,请参阅 man page quotaon (8)。
17.2.2. 报告磁盘配额
创建磁盘用量报告需要运行 repquota 工具。
例 17.6. repquota 命令的输出
例如,命令 repquota /home 生成此输出:
*** Report for user quotas on device /dev/mapper/VolGroup00-LogVol02 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 36 0 0 4 0 0 kristin -- 540 0 0 125 0 0 testuser -- 440400 500000 550000 37418 0 0
要查看所有启用了配额的文件系统的磁盘使用情况报告(选项
-a
),请使用命令:
# repquota -a
虽然报告易于阅读,但有以下几点需要解释:每个用户后面显示的
--
是确定是否超过块或内节点限制的快速方法。如果超过了任何一个软限制,则 +
会出现在对应的 -
的位置,第一个 -
代表块限制,第二个代表内节点限制。
grace
列通常为空。如果超过了软限制,则该列包含的时间规格等同于宽限期中剩余的时间量。如果宽限期已过期,none
会出现在其位置上。
17.2.3. 使配额保持准确
当文件系统无法完全卸载时,例如因为系统崩溃,需要运行以下命令:
#
quotacheck
但是,quotacheck 可以定期运行,即使系统没有崩溃。定期运行 quotacheck 的安全方法包括:
- 确保 quotacheck 在下次重启时运行
- 大多数系统的最佳方法这个方法最适合定期重启的多用户系统。使用以下命令将 shell 脚本保存到
/etc/cron.daily/
或/etc/cron.weekly/
目录中,或者使用以下命令调度一个:#
crontab -ecrontab -e 命令包含 touch /forcequotacheck 命令。这会在根目录中创建一个空的forcequotacheck
文件,系统初始化脚本会在引导时查找该文件。如果找到了,初始化脚本将运行 quotacheck。之后,初始化脚本会删除/forcequotacheck
文件;因此,使用cron
定期创建此文件,确保在下次重启时运行 quotacheck。有关 cron 的更多信息,请参阅 man cron。 - 在单用户模式下运行 quotacheck
- 安全运行 quotacheck 的替代方法是将系统引导至单用户模式,以防止配额文件中出现数据崩溃并运行以下命令:
#
quotaoff -vug /file_system#
quotacheck -vug /file_system#
quotaon -vug /file_system - 在运行的系统上运行 quotacheck
- 如有必要,可以在没有用户登录的情况下在机器上运行 quotacheck,因此没有正在检查的文件系统上的打开文件。运行 quotacheck -vug file_system 命令;如果 quotacheck 无法以只读形式重新挂载给定的 file_system,此命令将失败。请注意,在检查后,文件系统将以读写形式重新挂载。警告不建议在以读写形式挂载的实时文件系统上运行 quotacheck,因为可能会损坏配额文件。
有关配置 cron 的更多信息,请参阅 man cron。