磁盘配额基础

Posted Linuxbugs(卡西莫多伯伯)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了磁盘配额基础相关的知识,希望对你有一定的参考价值。

磁盘配额在本质上就是限制某些用户过度的使用磁盘空间,文了保护磁盘不至于过于饱和导致其他用户无法使用该磁盘空间。给用户一定的磁盘空间使用限制,包括一个警告容量,当到达警告容量时,系统会对其进行提醒,一旦用户使用到限制容量大小,便无法在在该磁盘继续创建文件。

初始化

   如果我们要使用磁盘配额,首先要做的第一步是在挂载分区选项里添加usrquotagrpquota两个选项,分别对应的是对user的限制,和对该group用户的限制。

将他们写到/etc/fstab的磁盘挂载信息里,如:

LABEL="TEST" /test ext4    defaults,usrquota,grpquota  0 0

[[email protected] ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="TEST" UUID="2160957c-ad8f-4ae8-b351-f9f997f85081" TYPE="ext4" 
[[email protected] ~]# vim /etc/fstab 
  1 
  2 #
  3 # /etc/fstab
  4 # Created by anaconda on Tue Jul 11 15:55:27 2017
  5 #
  6 # Accessible filesystems, by reference, are maintained under /dev/disk
  7 # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
  8 #
  9 UUID=6df0d47f-1a62-4419-a49c-e57906aa2173 /                       ext4    defaults        1 1
 10 UUID=cab5975d-48e5-4699-ad14-3ba77c23eb76 /app                    ext4    defaults        1 2
 11 UUID=2ce5a899-4627-4999-8d5f-6dba1a73008e /boot                   ext4    defaults        1 2
 12 UUID=8c5e10b7-90c0-49f0-a165-54e8120fab57 swap                    swap    defaults        0 0
 13 UUID=d61dadb7-2d2c-4639-a927-3de618b914ca swap                    swap    defaults        0 0
 14 UUID=2160957c-ad8f-4ae8-b351-f9f997f85081 /test                   ext4    defaults,usrquota,g
    rpquota        0 0

然后我们初始化数据库,初始化数据库后,系统会在该磁盘下创建文件aquota.groupaquota.user

说明

quotacheck命令通过扫描指定的文件系统,获取磁盘的使用情况,创建、检查和修复磁盘配额(quota)文件。执行quotacheck指令,扫描挂入系统的分区,并在各分区的文件系统根目录下产生quota.userquota.group文件,设置用户和群组的磁盘空间限制。

命令:quotacheck –cug 挂载的目录

      -c 对文件系统进行扫描,不会读已经存在的配额文件

      -u 扫描磁盘空间时,计算每个用户识别码所占用的目录和文件数目

      -g 扫描磁盘空间时,计算每个群组识别码所占用的目录和文件数目

[[email protected] ~]# quotacheck -cug /test
[[email protected] ~]# ll /test/
total 32
-rw-------. 1 root root  6144 Aug 22 21:13 aquota.group
-rw-------. 1 root root  6144 Aug 22 21:13 aquota.user
drwx------. 2 root root 16384 Aug 22 21:07 lost+found

开启/关闭指定文件系统的配额功能

命令:quotaon/quotaoff

参数:

-a:开启在/ect/fstab文件里,有加入quota设置的分区的空间限制(默)

-g:开启群组的磁盘空间限制

-u:开启用户的磁盘空间限制

-v:显示指令指令执行过程

如果我指定的文件系统挂载在/test下:

     开启:quotaon    /test

     关闭:quotaoff    /test

[[email protected] ~]# quotaon /test
[[email protected] ~]# ll /test
total 32
-rw-------. 1 root root  6144 Aug 22 21:13 aquota.group
-rw-------. 1 root root  6144 Aug 22 21:13 aquota.user
drwx------. 2 root root 16384 Aug 22 21:07 lost+found
[[email protected] ~]# rm /test/aquota.group 
rm: remove regular file `/test/aquota.group? y
rm: cannot remove `/test/aquota.group: Operation not permitted   -------------------------开启后root也无法将数据库文件删除

编辑配额信息

在这一部分就是编辑我们要限制的配额信息,包括配额的大小,配额文件数量,我们有两种方式可以对磁盘进行配额。

直接编辑:

   命令:edquota username

   参数:

      -u:设置用户的quota,这是预设的参数;

-g:设置群组的quota

-p<源用户名称>:将源用户的quota设置套用至其他用户或群组

-t:设置宽限期限。

Disk quotas for user Tom (uid 501):

  Filesystem  blocks    soft     hard    inodes     soft     hard

/dev/sda6  1150980  1048576  2097152     1       200      250

如上所示就是我们针对于某用户或者组需要进行的配额信息:

(默认单位是K,可以设置单位为MG

   blocks就是该用户或组实际的文件大小总和,无需改动

   soft是警告会产生的容量,当该用户或组的文件总量到达这个值就会给出警告信息

   hard是限制,当总量到达这个值后,就无法在添加文件

   inodes是指文件数量,无需改动

   soft指文件数量的警告值

   hard是指实际限制值

[[email protected] ~]# edquota Tom
Disk quotas for user Tom (uid 501):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb1                         0          8G         10G          0        200    220 
~                                                                                          

shell中编辑:

格式:

   setquota usename ##M|G ##M|G  n1 n2 挂载目录

   例如:setquota usename 35G 50G  40 50 /test

   这四个参数对应的就是上面的soft hard soft hard

[[email protected] ~]# setquota mage 6G 8G 100 120 /test
[[email protected] ~]# 

查看配额状态

当我们想查看用户的配额使用情况时,我们可以使用一些命令来查看,我们在这里说两个命令:

查看单用户

   命令:quota [option] username

   参数:

      -g:列出群组的磁盘空间限制;

-q:简明列表,只列出超过限制的部分;

-u:列出用户的磁盘空间限制;

-v:显示该用户或群组,在所有挂入系统的存储设备的空间限制;

-V:显示版本信息。

[[email protected] ~]# quota -vu Tom
Disk quotas for user Tom (uid 501): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sdb1       0  8388608 10485760               0     200     220       

查看所有用户

   命令:repquota [option] mount_point

   参数:

      -a:列出在/etc/fstab文件里,有加入quota设置的分区的使用状况,包括用户和群组;

-g:列出所有群组的磁盘空间限制;

-u:列出所有用户的磁盘空间限制;

-v:显示该用户或群组的所有空间限制。

[[email protected] ~]# repquota -vu /test 
*** Report for user quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      20       0       0              2     0     0       
Tom       --       0 8388608 10485760              0   200   220       
mage      --       0 6291456 8388608              0   100   120       

Statistics:
Total blocks: 7
Data blocks: 1
Entries: 3
Used average: 3.000000 

发送警告信息

当磁盘到达警告范围,我们可以使用命令发邮件告诉用户及时清理自己的文件,以便可以持续使用该空间

命令:warnquota [option]

参数:

    -u 给所有超过限制的用户发邮件

    -g 当组的限制超出时,给组管理员发邮件,管理员需在/etc/quotagrpadmins 中指定

格式: groupname: username

[[email protected] ~]# warnquota -u
[[email protected] ~]# 

 

以上是关于磁盘配额基础的主要内容,如果未能解决你的问题,请参考以下文章

Linux 磁盘LVM管理和磁盘配额

linux 基础10-磁盘配额管理

linux云自动化运维基础知识19(分区加密,磁盘配额)

磁盘配额

Red Hat Enterprise 6.5磁盘分区,LVM管理及磁盘配额设置

Linux 磁盘配额问题