Linux 如何限制用户的磁盘使用量 -- quota

来源:互联网 发布:怎么在淘宝上做客服 编辑:程序博客网 时间:2024/04/29 05:05

1. 查看所有磁盘的容量及使用情况:


     可以看到本机有三块磁盘(sda/sdb/sdc),每块磁盘的大小约1T,其中系统被安装到了sda上,另两块磁盘被挂载到了/home/mnt1 和/home/mnt2上。由于使用服务器的人只有十来个,因此可以先将用户的home目录建在这两块磁盘上,以后用户增多再建在sda上。

     了解了磁盘情况,我们为每个用户设置磁盘的使用量为100G。

2.安装quota工具:

$sudo apt-get install quota

3.设置分区的Quota档案格式并使其生效:

$sudo vi /etc/fstab

   ----------------------------------------------------------------------------------------------------------------------------------
    #/home/mnt1 is on /dev/sdb
    UUID=025364c7-0414-4c9f-ac53-66671a954023   /home/mnt1 ext4   defaults,usrquota,grpquota     0     0

    #/home/mnt2 is on /dev/sdc
    UUID=b325110a-39a5-482a-8bc1-fe4a325fa322   /home/mnt2 ext4   defaults,
usrquota,grpquota
      0     0
   ----------------------------------------------------------------------------------------------------------------------------------

重新挂载/home/mnt1和/home/mnt2文件系统激活quota:

$mount -o remount /home/mnt1
$mount -o remount /home/mnt2

4.创建配额文档,重新生成磁盘用量表:

$sudo quotacheck -cugm /home/mnt1
$sudo quotacheck -cugm /home/mnt2

        $ls -la /home/mnt1     -->可以看到生成了两个文件:aquota.group和aquota.user,两个文件记录了对分区限额的信息。

5.配置用户磁盘使用限额

$sudo edquota sygan

  -----------------------------------------------------------------------------------------------------------------
  Disk quotas for user sygan (uid 1001):
  Filesystem                                    blocks          soft      hard      inodes     soft     hard
  /dev/mapper/M8--PBI--vg-root     633336         0          0          10758       0        0
  /dev/sdb                                       50646000     0          0          673469     0        0
  /dev/sdc                                        0                   0          0          0               0        0
  -----------------------------------------------------------------------------------------------------------------
  1).filesystem:用户在哪个文件系统上的限额。
  2).blocks: blocks数量,quota自己算出来的,单位为 Kbytes,请不要修改它。
  3).soft: block的soft(下限)限制值,单位为 Kbytes。
  4).block: block的hard(上限)限制值,单位为 Kbytes。
  5).inodes: inodes数量,quota自己算出来的,单位为 Kbytes,请不要修改它。
  6).soft: inode 的 soft 限制值;
  7).hard: inode 的 hard 限制值;

当 soft/hard 为 0 时,表示沒有限制的意思。我们需要设定的是 blocks 的 soft/hard ,至于 inode 则不要去动它!
 于是,我们可以为用户分配大概100G的磁盘:
 --------------------------------------------------------------------------------------------------------------------------------------
 Disk quotas for user sygan (uid 1001):
  Filesystem                                       blocks         soft                   hard               inodes       soft     hard
  /dev/mapper/M8--PBI--vg-root         0                 0                       0                    0               0         0
  /dev/sdb                                          42203060    100000000      104857600     654491      0        0
  /dev/sdc                                          0                  0                       0                    0                0        0
 --------------------------------------------------------------------------------------------------------------------------------------

6.将配置复制给其他用户:

$sudo edquota -p sygan -u kqian

7.激活quota

$sudo quotaon /home/mnt1
$sudo quotaon 
/home/mnt2

8.查看是否激活成功:
$sudo quotaon -p /home/mnt1
$
sudo quotaon -p /home/mnt2

9.宽限时间:

        所谓宽限时间,即用户使用量大于soft值之后,在宽限时间内仍可继续使用磁盘,在宽限时间内限使用量降到soft值以下即可,系统默认为七天。本人没有试过在使用达到soft值之后,又没有在宽限时间内降回来会有什么后果。


0 0