磁盘配额是管理员为普通用户设置的使用磁盘的限制,每个用户只能使用有限的磁盘空间。通过磁盘配额的设置,管理员可以很清楚的了解到每个用户的磁盘使用情况。同时,也避免了某些用户因为存储垃圾文件浪费磁盘空间导致其他其他用户无法正常工作。

 
    在linux中我们只能使用超级管理员root用户进行磁盘配额的设置,并且磁盘配额是基于文件系统的,也就是必须在文件系统上配置磁盘配额。我们可以对用户或组的所能使用的空间大小或是创建的文件个数进行限制。限制可以分为两种:
    1,软限制:当用户或组所分配的空间占满以后,在一定的宽限期内可以超出容量但是系统会给处警告,并在宽限期过后强制收回空间。
    2,硬限制:当用户或组所分配的空间占满以后,就不能在存储数据。
 
    下面我们来说说怎么启用磁盘配额:
     1,为要启用的磁盘配额文件系统设定挂载选项
     例如:我们新建的分区为/dev/sda2,格式化为ext3文件系统,挂载到/myquota这个目录
 
     fdisk /dev/sda
     新建分区
 
     mke2fs -j /dev/sda2
     把此分区格式化为ext3文件系统
     
     mkdir /myquota   
 
     chown username:username /myquota  
     因为我们是用root用户建立的目录,而要对username用户在这个目录中设置磁盘配额,则这目录的属主属组要该为username
 
     vi /etc/fstab  添加如下行 
     /dev/sda2  /myquota    ext3   defaults,usrquota 0 0
     表示把/dev/sda2这个分区挂载到/myquota下,并启用用户磁盘配额,这个文件只有系统启动的时候才会被读取(如果要启用组磁盘配额,则把defaults,usrquota改为defaults,grpquota)
    
     mount -a  
     挂载/etc/fstab中所有没有挂载的文件系统,这就使我们刚才在/etc/fstab中添加的行生效了。
 
     注:{ 如果是对/etc/fstab中已有的文件系统设置,除了把对应文件系统条目的defaults改为"defaults,usrquota"外,还需要执行命令
          mount -o remount,usrquota /myquota  
          重新挂载/myquota,启用用户配额(把remount,usrquota改为remount,grpquota则是是启用组配额)
          }
 
     2.创建配额的数据库
     quotacheck -cmu /myquota
     在/myquota中会生成用户的数据库文件aquota.user
     -c 创建新的数据库文件
     -m 不将此文件系统挂载为只读
     -u 设定用户配额数据库  
     -g 设定组配额数据库
 
      3,启用对应文件系统上磁盘配额的功能
      quotaon /myquota  启用
      quotaoff /myquota 关闭
      quota -a          启用所有磁盘配额
 
      4,设定用户配额或组配额
      我们这里还以设定用户配额为例,组配额设置与此相同.
      edquota -u username 对username这个用户设定配额,打开的是一个vi界面
      edquota -g groupname 对groupname这个组设定配额
      显示如图:

      Filesystem 文件系统
      blocks 已经使用的块数(块的单位为1K)
      soft 块数软限制,0表示禁用
      hard 块数硬限制,0表示禁用
      inodes 已经创建的文件个数,如果后面有*表示已经超出软限制
      soft 创建的文件个数的软限制,0表示禁用
      hard 创建的文件个数的硬限制,0表示禁用
 
      edquota -p username username1 
      把username用户的设定复制给username1用户
 
      edquota -t 
      设定宽限期,默认为7天,可以用days,weeks,months等     

      Filesystem:文件系统
      Block grace period:块数超出后的宽限期
      Inode grace period:文件数超出的宽限期
 
      quota username
      显示此用户磁盘配额使用情况的摘要信息    

      Filesystem 文件系统
      blocks 已经使用的块数(*表示已经超出软限制)
      quota 块数软限制,0表示未启用
      limit 块数硬限制,0表示未启用
      grace 超出块数的宽限期
      files 已经创建的文件个数,如果后面有*表示已经超出软限制
      quota 创建的文件个数的软限制,0表示未启用
      limit 创建的文件个数的硬限制,0表示未启用
      grace 超出所能创建的文件个数的宽限期   
 
      repquota /myquota
      显示使用磁盘配额的文件系统的所有相关用户的摘要信息

Linux中磁盘配额的设置_第1张图片

     user:表示用户
     --:  --表示没有超出相应限制;如果出现 +- 表示超出了块限制,- + 表示  超出了文件个数限制
     userd:此用户已经使用的块数
     soft:软限制(单位是块)
     hard:硬限制(单位是块)
     grace: 此用户超出块数的宽限期
     used:此用户已经创建的文件个数
     soft:软限制(单位是文件个数)
     hard:硬限制(单位是文件个数)
     grace:此用户超出文件个数的宽限期
 
     warnquota 
     这个命令用于对那些设置磁盘配额的并且已经超出软限制的用户,以邮件的形式发送警告信息