设置磁盘限额系统

通常,只有包含用户主目录和文件的那些文件系统才需要磁盘限额。

考虑在以下条件下实现磁盘限额系统:

  • 系统磁盘空间有限。
  • 需要更高的文件系统安全性。
  • 磁盘使用程度很高,例如在许多大学。

如果这些条件不适用于您的环境,您可能不希望通过实现磁盘限额系统来创建磁盘使用限制。

磁盘限额系统只能与日志文件系统一起使用。

注: 请勿为 /tmp 文件系统建立磁盘配额。
使用以下步骤设置磁盘限额系统:
  1. 使用 root 用户权限登录。
  2. 确定哪些文件系统需要限额。
    注: 因为许多编辑器和系统实用程序在 /tmp 文件系统中创建临时文件,所以它必须没有配额。
  3. 使用 chfs 命令将 userquotagroupquota 限额配置属性包含到 /etc/filesystems 文件中。 以下示例使用 chfs 命令在 /home 文件系统中启用用户限额:
    chfs -a "quota = userquota" /home
    要启用 /home 文件系统的用户和组限额,输入:
    chfs -a "quota = userquota,groupquota" /home
    /etc/filesystems 文件中的相应项显示如下:
    /home:
    dev        = /dev/hd1
    vfs        = jfs
    log        = /dev/hd8
    mount      = true
    check      = true
    quota      = userquota,groupquota
    options    = rw
  4. 可选择指定备用磁盘限额文件名称。 quota.userquota.group 文件名是位于启用了配额的文件系统的根目录中的缺省名称。 您可以使用 /etc/filesystems 文件中的 userquotagroupquota 属性为这些配额文件指定备用名称或目录。

    以下示例使用 chfs 命令为 /home 文件系统创建用户和组限额,并且为 myquota.usermyquota.group 限额文件命名:

    chfs -a "userquota = /home/myquota.user" -a "groupquota = /home
            /myquota.group" /home
    /etc/filesystems 文件中的相应项显示如下:
    /home:
    dev        = /dev/hd1
    vfs        = jfs
    log        = /dev/hd8
    mount      = true
    check      = true
    quota      = userquota,groupquota
    userquota  = /home/myquota.user
    groupquota = /home/myquota.group
    options    = rw
  5. 请安装指定的文件系统(如果以前没有安装)。
  6. 为每一个用户或组设置希望的限额限制。 使用 edquota 命令为允许的磁盘空间和最大文件数创建每个用户或组的软限制和硬限制。

    以下示例项显示 davec 用户的限额限制:

    Quotas for user davec:
    /home: blocks in use: 30, limits (soft = 100, hard = 150)
            inodes in use: 73, limits (soft = 200, hard = 250)
    该用户已经使用了 100 KB 最大磁盘空间中的 30 KB。 davec 已经创建了最多 200 个文件中的 73 个。 该用户有 50 KB 磁盘空间和 50 个文件的缓冲区可以分配给临时存储器。

    当为多个用户建立磁盘限额时,使用带 -p 标志的 edquota 命令为另一用户复制用户的限额。

    要为用户 nanc 复制已为用户 davec 建立的限额,请输入:
    edquota -p davec nanc
  7. 使用 quotaon 命令启用配额系统。 当与 -a 标志一起使用时, quotaon 命令对指定的文件系统或具有配额的所有文件系统启用配额 (如 /etc/filesystems 文件中所指示)。
  8. 使用 quotacheck 命令可根据实际磁盘使用情况检查配额文件的一致性。
    注: 每次您首先在文件系统上启用配额,然后在重新引导系统后执行此操作。 quotacheck 命令在 JFS 文件系统上运行的时间比在大小相同的 JFS2 文件系统上运行的时间长。 如果在重新引导之前一直启用配额,那么在重新引导期间无需在文件系统上运行 quotacheck 命令。

    要在系统启动过程中启用此检测并打开限额,在 /etc/rc 文件的结尾添加以下行:

    echo " Enabling filesystem quotas "
    /usr/sbin/quotacheck -a 
    /usr/sbin/quotaon -a