Linux Quota基础配置

Quota介绍

这篇文章将介绍Linux的一个重要工具-Quota,使用Quota能对某一分区下指定用户或用户组进行磁盘限额。这里要说明的是,限额不是针对用户主目录,而是针对这个分区下的用户或用户组。Quota通过限制用户的blocks或者inodes起到限额的作用。

Quota配置

1、首先我们需要设置分区的Quota档案格式,只要在 /etc/fstab 里头增加了 usrquota, grpquota 就可以。如下,对分区/和/home启用quota磁盘格式。

  1. /dev/VolGroup00/LogVol04 /
  2. ext3 defaults,usrquota,grpquota 1 1
  3. LABEL=/boot /boot ext3 defaults 1 2
  4. devpts /dev/pts devpts gid=5,mode=620 0 0
  5. tmpfs /dev/shm tmpfs defaults 0 0
  6. /dev/VolGroup00/LogVol00 /home
  7. ext3 defaults,usrquota,grpquota 1 2
  8. proc /proc proc defaults 0 0
  9. sysfs /sys sysfs defaults 0 0
  10. /dev/VolGroup00/LogVol02 /tmp ext3 defaults 1 2
  11. /dev/VolGroup00/LogVol03 /var ext3 defaults 1 2
  12. /dev/VolGroup00/LogVol01 swap swap defaults 0 0

2、重新挂载/和/home文件系统激活quota。

  1. mount -o remount /
  2. mount -o remount /home

3、初始化quota数据库,运行quotacheck -cug 命令之后,在每个挂载分区根目录下你会发现生成了aquota.user aquota.group两个文件,这两个文件记录了对分区限额的信息。
初始化quota数据库:

  1. quotacheck -cug /
  2. quotacheck -cug /home/

检测是否已经生成:

  1. ls -al /aquota*
  2. -rw——- 1 root root 6144 May 26 17:15 /aquota.group
  3. -rw——- 1 root root 6144 May 26 17:15 /aquota.user
  4. ls -al /home/aquota*
  5. -rw——- 1 root root 7168 May 26 17:16 /home/aquota.group
  6. -rw——- 1 root root 7168 May 26 17:16 /home/aquota.user

4、开启一个定时任务,用来定时扫描quota空间。最好设置在深夜执行,如下:

  1. #MIN (0-59) HOUR (0-23)
  2. DoM (1-31) MONTH (1-12) DoW (0-7) CMD
  3. 0 1 * * 0 quotacheck -vug /
  4. 20 1 * * * quotacheck -vug /home

5、启用文件系统的quota支持。最简单的方法是重启计算机,你也可以使用quotaon命令而不需要重启计算机。
使用quotaon激活:

  1. quotaon /home
  2. quotaon /

检查是否激活成功:

  1. quotaon -p /home
  2. group quota on /home (/dev/mapper/VolGroup00-LogVol00) is on
  3. user quota on /home (/dev/mapper/VolGroup00-LogVol00) is on
  4. quotaon -p /
  5. group quota on / (/dev/mapper/VolGroup00-LogVol04) is on
  6. user quota on / (/dev/mapper/VolGroup00-LogVol04) is on

设定用户或用户组磁盘限额

在为用户设置限额时,需要知道几个术语:
soft :这是最低限制容量的意思,使用者在宽限期间之内,他的容量可以超过 soft ,但必需要宽限时间之内将磁盘容量降低到 soft 的容量限制之下!
hard :这是『绝对不能超过』的容量!跟 soft 相比的意思为何呢?通常 hard limit 会比 soft limit 为高,例如网络磁盘空间为 30 MB ,那么 hard limit 就设定为 30MB ,但是为了让使用者有一定的警戒心,所以当使用空间超过 25 MB 时,例如使用者使用了 27 MB 的空间时,那么系统就会警告使用者,让使用者可以在『宽限时间内』将他的档案量降低至 25 MB ( 亦即是 soft limit )之内!也就是说, soft 到 hard 之间的容量其实就是宽限的容量啦!可以达到针对使用者的『警示』作用!
宽限时间:那么宽限时间就可以很清楚的知道含意是什么了!也就是当您的使用者使用的空间超过了 soft limit ,却还没有到达 hard limit 时,那么在这个『宽限时间』之内,就必需要请使用者将使用的磁盘容量降低到 soft limit 之下!而当使用者将磁盘容量使用情况超过 soft limit 时,『宽限时间』就会自动被启动,而在使用者将容量降低到 soft limit 之下,那么宽限时间就会自动的取消啰!
1、使用edquota编辑用户限额

  1. edquota thirt

2、设置如下:

  1. Disk quotas for user thirt (uid 500):
  2. Filesystem                 blocks soft hard inodes soft hard
  3. /dev/mapper/VolGroup00-LogVol04 0 0 0 0 0 0
  4. /dev/mapper/VolGroup00-LogVol00 88 92160 102400 13 0 0

解释:
filesystem:这个是那个 partition 的意思!
blocks:这个是目前使用者 thirt ( uid 500 )在 /dev/mapper/VolGroup00-LogVol00 这个 filesystem (参考上面一个信息),所耗掉的磁盘容量,也就是目前的使用掉的空间啦!单位是 Kbytes 喔!这个信息是 quota 程序自己计算出来的,所以请不要修改他!
soft 与 hard :这个是目前的 test 在这个 filesystem 之内的 quota 限制值!至于 soft 与 hard 的意思就如同上面提的那个意思!当 soft 与 hard 数值为 0 的时候,表示『没有限制』的意思!而数值的单位仍是 Kbytes 喔!
inodes :是目前使用掉 inode 的状态,也是 quota 自己计算出来而得到的,所以不要去变更他。一般而言, inode 不容易控制,所以您可以不必去限制 inode 呢!
3、设置过期时间
设置/ 文件系统的默认过期时间:

  1. edquota -f / -t
  1. Grace period before enforcing soft limits for users:
  2. Time units may be: days, hours, minutes, or seconds
  3. Filesystem Block grace period Inode grace period
  4. /dev/mapper/VolGroup00-LogVol04 7days 7days

设置/home文件系统过期时间:

  1. edquota -f /home -t
  1. Grace period before enforcing soft limits for users:
  2. Time units may be: days, hours, minutes, or seconds
  3. Filesystem Block grace period Inode grace period
  4. /dev/mapper/VolGroup00-LogVol00 7days 7days

4、验证设置
打印所有限额信息

  1. repquota -a

打印单个用户限额信息

  1. quota thirt