Linux如何进行磁盘配额quota的设置
通过quota进行磁盘配额,可以控制用户对磁盘空间和文件的控制,我们以一个实例作为说明,对2个用户user01、user02分别进行磁盘使用空间和创建文件的限制。
首先,创建一个新的分区,将/tmp挂载在新的分区。
#fdisk /dev/hda
创建后执行:
#partprobe
重新写分区表
#mkfs –t ext3 /dev/hda7格式化分区
#mount /dev/hda7 /tmp将/tmp挂载到hda7分区
修改分区表
#vi /etc/fstab增加usrquota,grpquota
/dev/hda7 /tmp ext3 defaults, usrquota,grpquota 0 0
创建用户
#useradd user01
#useradd user02
#cd /tmp
#mount –o remount /tmp
#quotacheck –cvug /tmp
#quotaon –vug /tmp 开启quota
Quota会在/tmp目录下自动创建quota.user quota.group
对用户user01进行磁盘空间使用限制
#edquota –u user01 修改quota配置文件
Block limits File limits
User used soft hard timeleft used soft hard timeleft
userq -- 0 5000 8000 0 0 0
Block limits是对磁盘空间使用的限制,以字节为单位,soft是指软限制,hard是指硬限制,如例,soft限制为5MB,hard限制为8MB,当用户user01使用空间超过5MB时,系统会进行提示,但可以继续使用空间,而当用户user01使用空间达到8MB时,就会限制用户user01继续使用/tmp空间
我们可以进行一下测试,手动创建相对大的文件:
#dd if/dev/zero of=user01file bs=1M count=4 将创建成功
#dd if/dev/zero of=user01file bs=1M count=6将创建成功,但会有提示
#dd if/dev/zero of=user01file bs=1M count=9将创建失败,超出hard限制
对用户user02进行创建文件使用限制
#edquota –u user02 修改quota配置文件
Block limits File limits
User used soft hard timeleft used soft hard timeleft
userq -- 0 0 0 0 50 80
File limits是对用户创建文件的限制,soft和hard同上是软限制和硬限制,分别是50、80,当用户user02创建文件超过50个时,系统会进行提示,但仍可以继续创建文件,而当用户user02创建文件超过80个文件时,就会限制用户user02继续创建文件,但要注意,因为用户user02是在/tmp目录下进行了磁盘配额限制,所以/tmp目录会算做一个文件,所以user02最多只能创建79个文件。
我们可以进行一下测试,手动创建文件:
#for i in $(seq 1 60);do echo “user02file$i”;touch user02file$i;done
创建60个文件,此时quota会进行提示,而当超过80个文件的时候,quota就会限制用户user02继续创建文件
#edquota –t
可以设置timeleft的值,在这里我们都设定为2分钟,重复上面的例子,用户 user02创建60个文件,此时会出现quota的提示,但仍可以创建文件,但当我们等待2分钟后,你会发现,user02已经不能再进行创建文件了,这里就是timeleft的作用,就是当你超过soft限制时,设定有效的时间。
其他相关命令
#repquota 重载quota设置
#quota –v 察看quota设置
#quota on/off quota开启/关闭
这样我们就可以对用户进行相应的限制了。
# mount /dev/hda7 /tmp将/tmp挂载到hda7分区
这种方法比较巧,可以杜绝任何用户都可以无限制任意使用 /tmp 资源。