磁盘配额(Quota)的用途限制用户对磁盘空间的使用量,避免因某些用户过度占用硬盘空间而造成其他用户无法使用硬盘。
1、Quota的使用限制
(1)Quota的使用是针对文件系统(经格式化的分区);
(2)Linux内核必须支持quota;
(3)Quota只能限制一般用户和组(不能限制root用户);
2、Quota的规范设置选项
(1)可进行容量限制(最常用),也可以进行文件数量限制。(block或inode);
(2)Quota的限制值:soft和hard,soft为最低限制(软限制),超过这个值,系统会报警,甚至最终锁定用户的写入操作,hard为最高限制(硬限制),其值是绝对不能超过的。
(3)宽限时间(grace time),当用户的磁盘用量超过soft,但尚未达到hard值时,系统会报警,并给出一个宽限时间(一般7天),当超过了宽限时间,并且用户的磁盘用量没有降到soft之下时,soft值会即可替代hard值,用户将不能再向磁盘写入数据。
3、Quota使用步骤
通过一个具体案例说明Quota使用步骤。此案例是针对分区sd2设置Quota,该分区挂载于/home目录上。

df -m |grep sda2

/dev/sda2 2016 67 1847 4% /home
(1)安装quota软件包quota-3.17-20.el6.i686.rpm
yum –y install quota
(2)修改/etc/fstab文件,对分区sda2设置Quota,增加黑体部分内容
UUID=a80… /home ext4 defaults,usrquota,grpquota 1 2

umount /home

mount -a

mount |grep sda2

/dev/sda2 on /home type ext4 (rw,usrquota,grpquota)
(3)扫描文件系统,并建立Quota配置文件
#Quotacheck –avug
该命令仅需执行一次即可。
检查Quota配置文件是否建立完成
ll -d /home/a*
-rw-------. 1 root root 6144 12月 30 10:14 /home/aquota.group
-rw-------. 1 root root 6144 12月 30 10:14 /home/aquota.user
(4)Quota启动

quotaon –avug 该命令只需执行一次即可

(5)配置限额
A 配置用户lili的限额

edquota -u lili

执行该命令后,会自动建立一个名为lili的限额文件,并用vi打开,此文件初始化状态如下:
Disk quotas for user lili (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/sda2 20 0 0 5 0 0
该文件共包括7个字段,Filesystem是设置限额的分区,blocks是用户已经使用量,第一个soft是容量软限制,第一个hard是容量硬限制,inodes是用户已经建立文件个数,第二个soft是文件个数软限制,第二个hard是文件个数硬限制。
两个soft、两个hard初始对应值均为0,表示不加限制。如果需要设置,就可以设置对应字段值,容量限制单位为KB。
为了方便测试,为lili限制容量为soft 50KB, hard 70KB。
Filesystem blocks soft hard inodes soft hard
/dev/sda2 20 50 70 5 0 0
如果要设置其他用户的限额,需要一一设置。但如果限额一样的话,也可以使用复制的方法。例如:# edquota -p lili -u zhangwei
B 配置组caiwubu限额

edquota -g caiwubu

C 修改宽限天数

edquota -t

(6)查看限额
quota -uvs lili 查看用户lili的限额
Disk quotas for user lili (uid 500):
Filesystem blocks quota limit grace files quota limit grace
/dev/sda2 20 50 70 5 0 0

quota -gvs caiwubu 查看组caiwubu的限额

repquota –augs 查看所有用户的限额

(7)以用户lili登录,进行测试
$ dd if=/dev/zero of=/home/lili/testfile bs=1k count=40
sda2: warning, user block quota exceeded.
记录了40+0 的读入
记录了40+0 的写出
40960字节(41 kB)已复制,0.00194413 秒,21.1 MB/秒
查询配额:$ quota -uvs lili
Disk quotas for user lili (uid 500):
Filesystem blocks quota limit grace files quota limit grace
/dev/sda2 64* 50 70 6days 7 0 0
通过查询可知lili在/dev/sda2上已经使用磁盘64k,超出了soft值,但尚未达到hard值,宽限天数还余6天。
(8)关闭quota

quotaoff -avug

/dev/sda2 [/home]: group quotas turned off
/dev/sda2 [/home]: user quotas turned off