一、 磁盘配额的功能

    所谓磁盘配额就是管理员可以对用户所能使用的磁盘空间进行配额限制,即每个用户只能使用最大配额范围内的

磁盘空间。磁盘配额监视个人用户卷的使用情况,因此,每个用户对磁盘空间的利用都不会影响同一

卷上其它用户的磁盘配额。

 

二、实现磁盘配额的步骤

    要实现磁盘配额,请使用以下步骤:

    1. 检查Linux 内核是否打开磁盘配额支持。

    2. 修改/etc/fstab,对所选文件系统激活配额选项。

    3. 更新装载文件系统,使改变生效。

    4. 在该文件系统引导时建立aquota.user文件。

    5. 扫描相应文件系统,用quotacheck命令生成基本配额文件。

    6. 用edquota命令,对特定用户采用配额限制。

    7. 最后,用命令激活配额。

   

实现Linux的磁盘配额的详解

    1. 检查内核情况

    检查当前内核是否支持quota,当前内核配置文件在/boot下

    # grep  CONFIG_QUOTA /boot/config-2.4.20

    CONFIG_QUOTA=y

    CONFIG_QUOTACTL=y

    如果有上列输出,则表示当前内核已经支持quota。如果当前内核不支持quota,需要重新编译内核将quota

support编译进核心:

    File systems  --->  [*] Quota support

 

    2. 修改/etc/fstab,对所选文件系统激活配额选项

    以根用户身份使用vi编辑器来给需要配额的文件系统添加 usrquota 和(或) grpquota 选项:
    :
    LABEL=/           /               ext3    defaults        1 1

    LABEL=/boot       /boot           ext3    defaults        1 2
    LABEL=/home       /home           ext3    defaults,usrquota 1 2
    none              /dev/shm        tmpfs   defaults        0 0
    /dev/hda2         swap            swap    defaults        0 0
   

在上面的例子中,/home 文件系统上启用了用户配额。

    3. 重新挂载文件系统

    添加了 userquota 和 grpquota 选项后,重新挂载每个相应 fstab 条目被修改的文件系统。如果某文件系统

没有被任何进程使用,使用 umount 命令后再紧跟着 mount 命令来重新挂载这个文件系统。如果某文件系统正

在被使用,要重新挂载该文件系统的最简捷方法是重新引导系统或者使用命令:“# mount –o

remount /home”。

    4. 在该文件系统建立aquota.user文件

    # touch /home/aquota.user
    # chmod 600 /aquota.user

    5. 扫描相应文件系统,用quotacheck命令生成基本配额文件

    运行 quotacheck 命令,quotacheck 命令检查启用了配额的文件系统,并为每个文件系统建立一个当前磁盘

用来的表。该表会被用来更新操作系统的磁盘用量文件。此外,文件系统的磁盘配额文件也被更新。 要在文件系统

上创建配额文件( aquota.user 和 aquota.group ),使用 quotacheck 命令的 -c 选项。例如,如果用户和

组群配额都为 /home 分区启用了,在 /home 目录下创建这些文件:

    quotacheck -acug /home 

    -a 选项意味着在 /etc/mtab 中所有挂载了的非 NFS 文件系统都会被检查来决定是否启用了配额。 -c 选项指

定每个启用了配额的文件系统都应该创建配额文件, -u 选项指定检查用户配额, -g 选项指定检查组群配额。

    如果 -u 或 -g 选项被指定,只有用户配额文件被创建。如果只指定了 -g 选项,只有组群配额文件会被创建。
    文件被创建后,运行以下命令来生成每个启用了配额的文件系统的当前磁盘用量表:

    quotacheck –avug 

    所用选项如下:
    a — 检查所有启用了配额的在本地挂载的文件系统
    v — 在检查配额过程中显示详细的状态信息
    u — 检查用户磁盘配额信息
    g — 检查组群磁盘配额信息

    quotacheck 运行完毕后,和启用配额(用户和/或组群)相应的配额文件中就会写入用于每个启用了配额的文

件系统(如 /home )的数据。

    要定期运行它的最简单方法是使用 cron。以根用户身份,你既可以使用 crontab -e 命令来调度定期的

quotacheck,也可以在以下目录之一内放置一个运行 quotacheck 的脚本(使用最时候你需要的间隔期间):

    ? /etc/cron.hourly
    ? /etc/cron.daily
    ? /etc/cron.weekly
    ? /etc/cron.monthly

 

    最精确的配额统计数据可以在所分析的文件系统没有被活跃使用时获得。因此,cron 任务应该在文件系统被最

少使用时调度。如果这一时间在使用配额的文件系统中并不统一,则使用多个 cron 任务在不同的时间为每个文件

系统运行 quotacheck。

    6. 使用 edquota 命令分配磁盘配额。

    要为用户配置配额,以根用户身份在 shell 提示下执行以下命令:

    edquota -u username 

    为每个你想实现配额的用户执行该步骤。例如,如果在 /etc/fstab 中为 /home 分区( /dev/hda3 )启用了

配额,执行了 edquota testuser 命令后,系统默认的编辑器

  文件内有七个栏目:

   Filesystem => 进行配额管制的文件系统。
   blocks => 已经使用的区块数量(单位1KB)
   soft => block 使用数量的"软性"限制
   hard => block 使用数量的"硬性"限制
    inode => 已经使用的 inode 数量
   soft => inode 使用数量的"软性"限制
   hard => inode 使用数量的"硬性"限制