Quota介绍
这篇文章将介绍Linux的一个重要工具-Quota,使用Quota能对某一分区下指定用户或用户组进行磁盘限额。这里要说明的是,限额不是针对用户主目录,而是针对这个分区下的用户或用户组。Quota通过限制用户的blocks或者inodes起到限额的作用。
Quota配置
1、首先我们需要设置分区的Quota档案格式,只要在 /etc/fstab 里头增加了 usrquota, grpquota 就可以。如下,对分区/和/home启用quota磁盘格式。
/dev/VolGroup00/LogVol04 /
ext3 defaults,usrquota,grpquota 1 1
LABEL=/boot /boot ext3 defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
/dev/VolGroup00/LogVol00 /home
ext3 defaults,usrquota,grpquota 1 2
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/VolGroup00/LogVol02 /tmp ext3 defaults 1 2
/dev/VolGroup00/LogVol03 /var ext3 defaults 1 2
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
2、重新挂载/和/home文件系统激活quota。
mount -o remount /
mount -o remount /home
3、初始化quota数据库,运行quotacheck -cug 命令之后,在每个挂载分区根目录下你会发现生成了aquota.user aquota.group两个文件,这两个文件记录了对分区限额的信息。
初始化quota数据库:
quotacheck -cug /
quotacheck -cug /home/
检测是否已经生成:
ls -al /aquota*
-rw------- 1 root root 6144 May 26 17:15 /aquota.group
-rw------- 1 root root 6144 May 26 17:15 /aquota.user
ls -al /home/aquota*
-rw------- 1 root root 7168 May 26 17:16 /home/aquota.group
-rw------- 1 root root 7168 May 26 17:16 /home/aquota.user
4、开启一个定时任务,用来定时扫描quota空间。最好设置在深夜执行,如下:
#MIN(0-59) HOUR (0-23)
DoM (1-31) MONTH (1-12) DoW (0-7) CMD
0 1 * * 0 quotacheck -vug /
20 1 * * * quotacheck -vug /home
5、启用文件系统的quota支持。最简单的方法是重启计算机,你也可以使用quotaon命令而不需要重启计算机。
使用quotaon激活:
quotaon /home
quotaon /
检查是否激活成功:
1 2 下一页quotaon -p /home
group quota on /home (/dev/mapper/VolGroup00-LogVol00) is on
user quota on /home (/dev/mapper/VolGroup00-LogVol00) is on
quotaon -p /
group quota on / (/dev/mapper/VolGroup00-LogVol04) is on
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编辑用户限额
edquota thirt
2、设置如下:
Disk quotas for user thirt (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/mapper/VolGroup00-LogVol04 0 0 0 0 0 0
/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、设置过期时间
设置/ 文件系统的默认过期时间:
edquota -f / -t
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/mapper/VolGroup00-LogVol04 7days 7days
设置/home文件系统过期时间:
edquota -f /home -t
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/mapper/VolGroup00-LogVol00 7days 7days
4、验证设置
打印所有限额信息
repquota -a
打印单个用户限额信息
quota thirt
新闻热点
疑难解答