6.2. 管理磁盘配额

如果配额被实现,它们就需要被维护 — 主要维护方式是观察。查看配额是否被超出并确保配额的正确性。当然,如果用户屡次超出他们的配额或者持续地达到他们的软限,系统管理员就可以根据用户类型和磁盘空间对他们工作的影响来做出几种决策。管理员可以帮助用户决定对磁盘空间的使用,也可以按需要增加用户的配额。

6.2.1. 报告磁盘配额

创建磁盘用量报告需要运行 repquota 工具。例如,repquota /home 命令会生成以下输出:

*** Report for user quotas on device /dev/hda3
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
tfox      --     540       0       0            125     0     0
testuser  --  440400  500000  550000          37418     0     0

要查看所有启用了配额的文件系统的磁盘用量,使用以下命令:

repquota -a

这份报告虽然看起来很简单,有几点仍需要做一下说明。显示在每个用户后面的 -- 是一种判断用户是否超出其块限度或内节点限度的快速方法。如果任何一个软限被超出,相应的 - 行就会被 + 代替;第一个 - 代表块限度,第二个代表内节点限度。

grace 列通常是空白。如果某个软限被超出,这一列就会包含过渡期中的剩余时间。如果过渡期已超过了,其中就会显示 none

6.2.2. 保持配额的正确性

当某文件系统没有被完整地卸载(如,由于系统崩溃),这就有必要运行 quotacheck。不过,即便系统没有崩溃,quotacheck 也可以被定期经常运行。定期运行以下命令来保持配额的正确性(所用选项在第 6.1.1 节中被描述):

quotacheck -avug

要定期运行它的最简单方法是使用 cron。作为根用户,你既可以使用 crontab -e 命令来调度定期的 quotacheck,也可以在以下目录之一内放置一个运行 quotacheck 的脚本(使用最适合你需要的间隔期间):

最精确的配额统计数据可以在所分析的文件系统没有被活跃使用时获得。因此,cron 任务应该在文件系统被最少使用时调度。如果这一时间在使用配额的文件系统中并不统一,则使用多个 cron 任务在不同的时间为每个文件系统运行 quotacheck

请参考第37章 来获取关于配置 cron 的详情。

6.2.3. 启用和禁用

你可以不必把配额设置为 0 来禁用它们。要关闭用户和组群配额,使用以下命令:

quotaoff -vaug

如果 -u-g 选项没有被指定,只有用户配额被禁用。如果只指定了 -g 选项,只有组群配额会被禁用。

要重新启用配额,使用带有同样选项的 quotaon 命令。

例如,要为所有文件系统启用用户和组群配额:

quotaon -vaug

要为指定文件系统(如 /home)启用配额:

quotaon -vug /home

如果 -u-g 选项没有指定,那么仅用户配额会被启用。如果只指定了 -g 选项,仅组群配额会被启用。