Linux系统下如何进行磁盘配额Quota的设置

来源:岁月联盟 编辑:zhuzhu 时间:2007-07-12
Linux系统下如何进行磁盘配额Quota的设置内容简介:

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 资源。