磁盘配额(quota)的使用

linux是一个多用户的系统,许多用户可以共同使用一个硬盘,这样的话,如果一个用户使用大量的空间的话,别的用户就会没有空间可用,所以要为每个用户分配一定的空间,让用户在用完自己的空间之后,就不能再使用另外的空闲空间,这样可以达到控制用户使用空间大小。

下面以一个示例来总体来说明一下

例一个ftp服务器中有用户ftp1ftp2,主目录为/var/ftp,他们属于组ftp,系统为每个用户分配500M的空间,为ftp组分配800M的空间

1》 创建用户用户及组

    groupadd ftp

useadd -d /var/ftp -s /bin/bash -g ftp -M ftp1

useadd -d /var/ftp -s /bin/bash -g ftp -M ftp2

2》在/etc/fstab中加入quota的支持

vim /etc/fstab

再用mount -a 重新挂载分区

3》新建quota配置文件

  quota是通过分析整个文件系统中每个用户拥有的文件总数与总容量,再将这些数据记录在该文件系统的最顶层目录,然后在该配置文件中再使用每个账号的限制值去规定磁盘使用量的因此就需要有quota文件,quotaquotacheck这个命令经扫描支持quota参数(usrquota,grpquota)的文件系统而形成的。

   quotacheck:扫描文件系统并新建quota的配置文件

   参数:

-a:扫描所有在/etc/mtab内,含有quota支持的文件系统

 -u:针对用户扫描文件与目录的使用情况,会新建aquota.user

-g:针对用户扫描文件与目录的使用情况,会新建aquota.group

-v:显示扫描过程中的信息。

命令 :   quotacheck -avug    

使用这个命令之后就会出现quota的配置文件

生成的这两个文件并不是要修改的,它不是纯文本文件。

4quota启动,关闭,与限制值设置

   1>quota的启动命令:quotaon

   参数:

         -u:针对用户启动quota

         -g:针对组启动quota

         -m:启动信息

      -a:根据/etc/mtab内的文件系统设置启动有关的quota,若不加的话,则后面就需要加上特定的的那个文件系统

命令:quotaon -avug

2>quota的限制值配置

 edquota这个命令可以编辑账号/用户组的限值与宽限时间

 edquota

  参数:

    -u:后面接账号名称,可以进入用户quota的编辑界面

    -g:后面接组名,进入组quota的编辑界面

    -t:可以修改宽限时间

    -p:复制范本,如把一个用户的quota值,复制给另一个用户

进入ftp1quota的编辑界面

  edquota -u ftp1

   softhard的单位是kb前面两个是空间分配的soft限制值和hard限制值,后面的是inodessofthard限制值,我们现在只需要修改前面两个的值即可

使用-p参数来复制tfp2

 edquota -p ftp1 ftp2

 修改用户组的equota限制值

edquota -g ftp

修改宽限的天数(宽限天数是指在空间使用大于soft限制空间时系统会为你保存超出空间的时间)

edquota -t

5quota限制值的报表

quota的报表主要有两种模式,一种是针对每个个人或用户组的quota命令,一个是针对整个文件系统的repquota命令

1> 单一用户的报表查看方式

quota -uvs ftp1 ftp2

参数s是指使用1024为倍数来指定单位,会显示如M之类的单位

单一用户组的限制输出

Quota -gvs ftp

2>针对文件系统的限额做报表

   repquota -auvs

  repquota -agvs是输出组限额的

6》测试与管理

 测试配置是否成功,可以进入用户ftp

 注:在测试之前一定要先修改/var/ftp的权限为其它用户可以写,即

    chmod o+w /var/ftp

 

在创建一个超过soft限制的文件时会出现上面的warning,但是这个文件还是可以创建的,只要不超过hard定义的大小就可以创建成功,如果超过hard限制则出现什么情况呢?会如下图

系统会告诉你,你已经超出磁盘限额,虽然可以创建成功但是它的大小是你分配的hard的最大的限度。