Linux磁盘配额

设置磁盘配额需要提前注意几点:

1.磁盘配额限制只能针对文件系统做配额限制,即/dev/sd{a,b,c}1等,且内核和文件系统必须支持,且文件系统类型必须是XFS,否则无法设置配额。

2.配额只能限制普通用户,无法限制管理员用户。

3.需要提前yum -y install quota,安装quota这个命令包。

4.可以限制用户占用的磁盘容量大小(block),当然也能限制用户允许占用的文件个数(inode)。

磁盘配额中的常见概念

1.用户配额和组配额

用户配额是指针对用户个人的配额,而组配额是指针对整个用户组的配额。如果我们需要限制的用户数量并不多,则可以给每个用户单独指定配额。如果用户比较多,那么单独限制太过麻烦,这时我们可以把用户加入某个用户组,然后给组指定配额,就会简单得多。

需要注意的是,组中的用户是共享空间或文件数的。也就是说,如果用户user1、user2和user3都属于users用户组,给users用户组分配200MB的磁盘空间,那么,这三个用户不是平均分配这200MB空间的,而是先到先得,谁先占用,谁就有可能占满这200MB空间,后来的就没有空间可用了。

2.磁盘容量限制和文件个数限制

除了可以通过限制用户可用的block数量来限制用户可用的磁盘容量,也可以通过限制用户可用的inode数量来限制用户可以上传或新建的文件个数。

3.软限制和硬限制

软限制可理解为警告限制,硬限制就是真正的限制了。比如,规定软限制为100MB,硬限制为200MB,那么,当用户使用的磁盘空间为100~200MB时,用户还可以继续上传和新建文件,但是每次登录时都会收到一条警告消息,告诉用户磁盘将满。

4.宽限时间

如果用户的空间占用数处于软限制和硬限制之间,那么系统会在用户登录时警告用户磁盘将满,但是这个警告不会一直进行,而是有时间限制的,这个时间就是宽限时间,默认是7天。

如果到达宽限时间,用户的磁盘占用量还超过软限制,那么软限制就会升级为硬限制。也就是说,如果软限制是 100MB,硬限制是 200MB,宽限时间是 7天,此时用户占用了120MB,那么今后7天用户每次登录时都会出现磁盘将满的警告,如果用户置之不理,7天后这个用户的硬限制就会变成100MB,而不是200MB。

Linux磁盘配额

磁盘配额概述

Linux是一个多用户的操作系统,为了防止某个用户或组群占用过多的硬盘空间,可以通过硬盘配额(Disk Quota)功能限制用户和组群对硬盘空间的使用。磁盘配额(Quota)就是 Linux 系统中用来限制特定的普通用户或用户组在指定的分区上占用的磁盘空间或文件个数的。

在此概念中,有以下几个重点需要注意:

  1. 磁盘配额限制的用户和用户组,只能是普通用户和用户组,也就是说超级用户 root 是不能做磁盘配额的;
  2. 磁盘配额限制只能针对分区,而不能针对某个目录,换句话说,磁盘配额仅能针对文件系统进行限制,举个例子,如果你的 /dev/sda5 是挂载在 /home 底下,那么,在 /home 下的所有目录都会受到磁盘配额的限制;
  3. 我们可以限制用户占用的磁盘容量大小(block),当然也能限制用户允许占用的文件个数(inode)。

磁盘配额中的常见概念

用户配额和组配额

用户配额是指针对用户个人的配额,而组配额是指针对整个用户组的配额。如果我们需要限制的用户数量并不多,则可以给每个用户单独指定配额。如果用户比较多,那么单独限制太过麻烦,这时我们可以把用户加入某个用户组,然后给组指定配额,就会简单得多。

需要注意的是,组中的用户是共享空间或文件数的。也就是说,如果用户user1、user2和user3都属于users用户组,给users用户组分配200MB的磁盘空间,那么,这三个用户不是平均分配这200MB空间的,而是先到先得,谁先占用,谁就有可能占满这200MB空间,后来的就没有空间可用了。

磁盘容量限制和文件个数限制

除了可以通过限制用户可用的block数量来限制用户可用的磁盘容量,也可以通过限制用户可用的inode数量来限制用户可以上传或新建的文件个数。

软限制和硬限制

软限制可理解为警告限制,硬限制就是真正的限制了。比如,规定软限制为100MB,硬限制为200MB,那么,当用户使用的磁盘空间为100~200MB时,用户还可以继续上传和新建文件,但是每次登录时都会收到一条警告消息,告诉用户磁盘将满。

宽限时间

如果用户的空间占用数处于软限制和硬限制之间,那么系统会在用户登录时警告用户磁盘将满,但是这个警告不会一直进行,而是有时间限制的,这个时间就是宽限时间,默认是7天。

如果到达宽限时间,用户的磁盘占用量还超过软限制,那么软限制就会升级为硬限制。也就是说,如果软限制是 100MB,硬限制是 200MB,宽限时间是 7天,此时用户占用了120MB,那么今后7天用户每次登录时都会出现磁盘将满的警告,如果用户置之不理,7天后这个用户的硬限制就会变成100MB,而不是200MB。

磁盘配额启动的前期准备

使用磁盘配额的前提,是必须要内核以及文件系统支持才行,这里假设大家使用的就是支持磁盘配额的内核,那么接下来就是要配置文件系统,使其支持配额限制。

查看当前/home情况
[root@Server01 ~]# mount | grep home #noquota表示无配额
/dev/mapper/rhel_server01-home on /home type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)

[root@Server01 ~]# df -Th /home/  #ext3/ext4/xfs,则支持Quota
文件系统                       类型  容量  已用  可用 已用% 挂载点
/dev/mapper/rhel_server01-home xfs   8.0G   90M  8.0G    2% /home

启用配额
[root@Server01 ~]# vim /etc/fstab
UUID=0a759e3a-bb79-4b28-9db3-7c413e64ad6c /home                   xfs     
defaults,usrquota,grpquota        0 0
#实现基于用户的磁盘配额,就加入usrquota关键字,实现基于组的磁盘配额,就加入grpqouta关键字,如果两者都需要,就全写入,中间可以用逗号分隔
[root@Server01 ~]# reboot #重启系统

#重启后支持配额功能
[root@Server01 ~]# mount | grep home
/dev/mapper/rhel_server01-home on /home type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,usrquota,grpquota)

相关命令

xfs_quota命令

xfs_quota -x -c '指令' [挂载点]
  -x: 专家模式, 加x会多一些可以显示的
  -c: 加指令
指令:
	- print: 打印文件系统参数等数据
	- df: 与普通df一样
	- report: 'report -ugribh'等参数 r=project
	- state: 列出目前支持quota的文件系统的信息
	- limit: 'limit [-ug] b[soft|hard]=N i[soft|hard]=N name'  #b=block i=inode, N=数量, 也可为单位 name=用户/组的名称
	- timer: 'timer [-ug] [-bir] Ndays'

edquota命令

edquota:用于编辑指定用户或工作组磁盘配额。edquota预设会使用vi来编辑使用者或群组的quota设置。
语法:edquota (选项) (参数)
选项
  -u:设置用户的quota,这是预设的参数;
  -g:设置群组的quota;
  -p<源用户名称>:将源用户的quota设置套用至其他用户或群组;
  -t:设置宽限期限。
参数
	用户:指定要编辑磁盘配额限制的用户名或者工作组
edquota [-u 用户名] [-g 群组名]
edquota -t
edquota -p 源用户名 -u 新用户名

[root@ljh99 ~]# edquota -u myquota
Disk quotas for user myquota (uid 710):
  Filesystem    blocks  soft   hard  inodes  soft  hard
  /dev/hda3         80     0      0      10     0     0
此命令的输出信息共3行,第一行指明了针对哪个用户进行配额限制,第二行是各个配额值的表头,共分为7 列,其每一列的含义。
  文件系统(filesystem):说明该限制值是针对哪个文件系统(或分区)
  磁盘容量(blocks):此列的数值是quota自己算出来的,单位为Kbytes,不要手动修改
  磁盘容量的软限制(soft):当用户使用的磁盘空间超过此限制值,则用户在登陆时会收到警告信息,告知用户磁盘已满,单位为 KB
  磁盘容量的硬限制(hard):要求用户使用的磁盘空间最大不能超过此限制值,单位为KB
  文件数量(inodes):同blocks一样,此项也是quota自己计算出来的,无需手动修改
  文件数量的软限制(soft):当用户拥有的文件数量超过此值,系统会发出警告信息
  文件数量的硬限制(hard):用户拥有的文件数量不能超过此值

注意,当soft/hard为0时,表示没有限制。另外,在Vi(或 Vim)中修改配额值时,填写的数据无法保证同表头对齐,只要保证此行数据分为7个栏目即可。

setquota命令

需要写脚本建立大量的用户,并给每个用户都自动进行磁盘配额,那么edquota命令就不能在脚本中使用了,因为这个命令的操作过程和vi类似,需要和管理员产生交互。这种情况下就需要利用setquota命令进行设置,该命令的好处是通过命令行设定配额,而不用和管理员交互设定。

setquota:非交互式设置磁盘配额
语法:setquota [ -u|-g ] 用户名/组名 容量软限制 容量硬限制 个数软限制 个数硬限制 分区名/挂载点
选项
  -u user|UID:设置指定用户的配额限制,其中 user 表示每个用户的用户名,UID 是用户的 ID
  -g group|GID:设置特定组的配额限制,其中 group 表示每个组的名称,GID 是组的 ID

quota命令

quota:用于显示用户或者工作组的磁盘配额信息。输出信息包括磁盘使用和配额限制。
语法:quota(选项)(参数)
选项
  -g:列出群组的磁盘空间限制;
  -q:简明列表,只列出超过限制的部分;
  -u:列出用户的磁盘空间限制;
  -v:显示该用户或群组,在所有挂入系统的存储设备的空间限制;
  -V:显示版本信息。
参数:用户或者工作组:指定要显示的用户或者工作组。

repquota命令

repquota:以报表的格式输出指定分区,或者文件系统的磁盘配额信息。
语法:repquota(选项) (参数)
选项
  -a:列出在/etc/fstab文件里,有加入quota设置的分区的使用状况,包括用户和群组
  -g:列出所有群组的磁盘空间限制
  -u:列出所有用户的磁盘空间限制
  -v:显示该用户或群组的所有空间限制
参数
	文件系统:要打印报表的文件系统或者对应的设备文件名。

案例

环境及需求

  1. 目的用户:5个员工的账号分别是myquota1、myquota2、myquota3、myquota4和myquota5,5个用户的密码都是password,且这5个用户所属的初始组都是myquotagrp。其他的账号属性则使用默认值。
  2. 用户的硬盘容量限制值:5个用户都能够取得300MB的硬盘使用量(hard),文件数量则不予限制。此外,只要容量使用超过250MB,就予以警告(soft)。
  3. 用户的文件数量限制值:myquota1用户能够取得150个文件数量(hard),只要文件数量使用超过100,就予以警告(soft)。
  4. 组的配额:能够取得1GB的硬盘使用量(hard),文件数量则不予限制。此外,只要容量使用超过900M,就予以警告(soft)。

创建组和用户

创建用户组
[root@localhost ~]# groupadd myquotagrp
创建5个用户,并分配到组中 [root@localhost ~]# for username in myquota1 myquota2 myquota3 myquota4 myquota5 > do > useradd -g myquotagrp $username > echo "password" | passwd --stdin $username > done 更改用户 myquota1 的密码 。 passwd:所有的身份验证令牌已经成功更新。 更改用户 myquota2 的密码 。 passwd:所有的身份验证令牌已经成功更新。 更改用户 myquota3 的密码 。 passwd:所有的身份验证令牌已经成功更新。 更改用户 myquota4 的密码 。 passwd:所有的身份验证令牌已经成功更新。 更改用户 myquota5 的密码 。 passwd:所有的身份验证令牌已经成功更新。

准备支持quota的文件系统

#usrquota表示对/home启用了用户硬盘配额,grpquota表示对/home启用了组硬盘配额

 

使用xfs_quota命令设置磁盘配额

设置用户的磁盘配额

限制用户myquota1软限制250MB,硬限制300MB,且inode软限制100个,硬限制150个。
[root@localhost ~]# xfs_quota -x -c 'limit bsoft=250M bhard=300M isoft=100 ihard=150 myquota1' /project/ 限制用户myquota2软限制250MB,硬限制300MB,不做inode限制。 [root@localhost ~]# xfs_quota -x -c 'limit bsoft=250M bhard=300M isoft=0 ihard=0 myquota2' /project/
将用户2的磁盘配合配置同步到3 4 5用户。
[root@localhost ~]# edquota -p myquota2 -u myquota3

[root@localhost ~]# edquota -p myquota2 -u myquota4

[root@localhost ~]# edquota -p myquota2 -u myquota5

查看用户的磁盘配额

[root@localhost ~]# xfs_quota -x -c report /project/
User quota on /project (/dev/sdb1)
                               Blocks
User ID          Used       Soft       Hard    Warn/Grace
---------- --------------------------------------------------
root                0          0          0     00 [--------]
myquota1            0     256000     307200     00 [--------]
myquota2            0     256000     307200     00 [--------]
myquota3            0     256000     307200     00 [--------]
myquota4            0     256000     307200     00 [--------]
myquota5            0     256000     307200     00 [--------]

Group quota on /project (/dev/sdb1)
                               Blocks
Group ID         Used       Soft       Hard    Warn/Grace
---------- --------------------------------------------------
root                0          0          0     00 [--------]

设置组的磁盘配额

设置组的磁盘配额,注意单引号中是-g,-g代表制定的是是组。
[root@localhost ~]# xfs_quota -x -c 'limit -g bsoft=900M bhard=1G myquotagrp' /project/ 查看用户和组的磁盘配额 [root@localhost ~]# xfs_quota -x -c report /project/ User quota on /project (/dev/sdb1) Blocks User ID Used Soft Hard Warn/Grace ---------- -------------------------------------------------- root 0 0 0 00 [--------] myquota1 0 256000 307200 00 [--------] myquota2 0 256000 307200 00 [--------] myquota3 0 256000 307200 00 [--------] myquota4 0 256000 307200 00 [--------] myquota5 0 256000 307200 00 [--------] Group quota on /project (/dev/sdb1) Blocks Group ID Used Soft Hard Warn/Grace ---------- -------------------------------------------------- root 0 0 0 00 [--------] myquotagrp 0 921600 1048576 00 [--------]

使用repquota命令查看文件系统的配额报表

[root@centos7 ~]# repquota -ug /dev/sdb1
*** Report for user quotas on device /dev/sdb1
Block grace time: 14days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      -- 1568224       0       0             39     0     0
myquota1  +-  307200  256000  307200 13days       1   100   150
myquota2  +-  307200  256000  307200 13days       1     0     0
myquota3  +-  307200  256000  307200 13days       1     0     0
myquota4  --  124544  256000  307200              1     0     0
myquota5  --       0  256000  307200              1     0     0


*** Report for group quotas on device /dev/sdb1
Block grace time: 14days; Inode grace time: 7days
                        Block limits                File limits
Group           used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      -- 1568224       0       0             39     0     0
myquotagrp +- 1046144  921600 1048576 13days       5     0     0

测试

以myquota1为例验证用户的磁盘配额(容量限制)

切换到myquota1用户
因为/dev/sdb1挂载到了/project,所以以myquota1用户给/project下写文件,先写入一个100MB的文件file1,可以写入
[myquota1@centos7 project]$ dd if=/dev/zero of=/project/file1 count=1 bs=100M 1+0 records in 1+0 records out 104857600 bytes (105 MB) copied, 0.0555959 s, 1.9 GB/s [myquota1@centos7 project]$ ll total 102400 -rw-r--r--. 1 myquota1 myquotagrp 104857600 Nov 16 10:36 file1

再写入一个100MB的file2文件,可以写入 [myquota1@centos7 project]$ dd if=/dev/zero of=/project/file2 count=1 bs=100M 1+0 records in 1+0 records out 104857600 bytes (105 MB) copied, 0.216614 s, 484 MB/s
再写入一个100MB的file3文件,可以写入 [myquota1@centos7 project]$ dd if=/dev/zero of=/project/file3 count=1 bs=100M 1+0 records in 1+0 records out 104857600 bytes (105 MB) copied, 0.23693 s, 443 MB/s
再写入一个100MB的file4文件,无法写入,因为file1 file2 file3总大小为300MB,所以无法再写入内容了。 [myquota1@centos7 project]$ dd if=/dev/zero of=/project/file4 count=1 bs=100M dd: failed to open ‘/project/file4’: Disk quota exceeded

测试->文件数量限制值

创建一百个空文件,可以创建成功
[myquota1@centos7 project]$ for i in {1..101};do touch $i ;done [myquota1@centos7 project]$ ll total 0 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 1 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 10 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 100 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 101 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 11 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 12 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 13 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 14 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 15 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 16 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 17 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 18 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 19 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 2 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 20 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 21 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 22 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 23 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 24 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 25 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 26 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 27 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 28 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 29 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 3 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 30 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 31 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 32 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 33 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 34 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 35 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 36 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 37 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 38 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 39 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 4 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 40 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 41 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 42 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 43 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 44 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 45 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 46 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 47 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 48 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 49 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 5 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 50 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 51 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 52 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 53 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 54 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 55 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 56 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 57 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 58 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 59 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 6 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 60 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 61 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 62 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 63 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 64 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 65 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 66 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 67 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 68 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 69 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 7 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 70 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 71 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 72 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 73 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 74 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 75 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 76 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 77 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 78 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 79 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 8 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 80 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 81 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 82 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 83 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 84 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 85 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 86 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 87 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 88 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 89 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 9 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 90 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 91 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 92 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 93 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 94 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 95 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 96 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 97 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 98 -rw-r--r--. 1 myquota1 myquotagrp 0 Nov 16 10:37 99

在创建100个空文件,发现从第151个开始就无法创建了。说明文件数量限制生效了。 [myquota1@centos7 project]$ for i in {101..200};do touch $i ;done touch: cannot touch ‘151’: Disk quota exceeded touch: cannot touch ‘152’: Disk quota exceeded touch: cannot touch ‘153’: Disk quota exceeded touch: cannot touch ‘154’: Disk quota exceeded touch: cannot touch ‘155’: Disk quota exceeded touch: cannot touch ‘156’: Disk quota exceeded touch: cannot touch ‘157’: Disk quota exceeded touch: cannot touch ‘158’: Disk quota exceeded touch: cannot touch ‘159’: Disk quota exceeded touch: cannot touch ‘160’: Disk quota exceeded touch: cannot touch ‘161’: Disk quota exceeded touch: cannot touch ‘162’: Disk quota exceeded touch: cannot touch ‘163’: Disk quota exceeded touch: cannot touch ‘164’: Disk quota exceeded touch: cannot touch ‘165’: Disk quota exceeded touch: cannot touch ‘166’: Disk quota exceeded touch: cannot touch ‘167’: Disk quota exceeded touch: cannot touch ‘168’: Disk quota exceeded touch: cannot touch ‘169’: Disk quota exceeded touch: cannot touch ‘170’: Disk quota exceeded touch: cannot touch ‘171’: Disk quota exceeded touch: cannot touch ‘172’: Disk quota exceeded touch: cannot touch ‘173’: Disk quota exceeded touch: cannot touch ‘174’: Disk quota exceeded touch: cannot touch ‘175’: Disk quota exceeded touch: cannot touch ‘176’: Disk quota exceeded touch: cannot touch ‘177’: Disk quota exceeded touch: cannot touch ‘178’: Disk quota exceeded touch: cannot touch ‘179’: Disk quota exceeded touch: cannot touch ‘180’: Disk quota exceeded touch: cannot touch ‘181’: Disk quota exceeded touch: cannot touch ‘182’: Disk quota exceeded touch: cannot touch ‘183’: Disk quota exceeded touch: cannot touch ‘184’: Disk quota exceeded touch: cannot touch ‘185’: Disk quota exceeded touch: cannot touch ‘186’: Disk quota exceeded touch: cannot touch ‘187’: Disk quota exceeded touch: cannot touch ‘188’: Disk quota exceeded touch: cannot touch ‘189’: Disk quota exceeded touch: cannot touch ‘190’: Disk quota exceeded touch: cannot touch ‘191’: Disk quota exceeded touch: cannot touch ‘192’: Disk quota exceeded touch: cannot touch ‘193’: Disk quota exceeded touch: cannot touch ‘194’: Disk quota exceeded touch: cannot touch ‘195’: Disk quota exceeded touch: cannot touch ‘196’: Disk quota exceeded touch: cannot touch ‘197’: Disk quota exceeded touch: cannot touch ‘198’: Disk quota exceeded touch: cannot touch ‘199’: Disk quota exceeded touch: cannot touch ‘200’: Disk quota exceeded

组磁盘配额验证

用户1-5共享1GB空间,直到1GB空间使用完。

[myquota1@centos7 ~]$ dd if=/dev/zero of=/project/file1 count=1 bs=300M
1+0 records in
1+0 records out
314572800 bytes (315 MB) copied, 1.69831 s, 185 MB/s

[root@localhost ~]# su - myquota2
上一次登录:四 11月 16 10:41:17 CST 2023pts/0 上
[myquota2@centos7 ~]$ dd if=/dev/zero of=/project/file2 count=1 bs=300M
1+0 records in
1+0 records out
314572800 bytes (315 MB) copied, 0.504588 s, 623 MB/s


[root@localhost ~]# su - myquota3
上一次登录:四 11月 16 10:46:50 CST 2023pts/0 上
[myquota3@centos7 ~]$ dd if=/dev/zero of=/project/file4 count=1 bs=300M
1+0 records in
1+0 records out
314572800 bytes (315 MB) copied, 1.22521 s, 257 MB/s

创建file5后,组中的用户总共使用的容量就大于1GB了,所以可以看到file5只创建了128MB的数据
[root@localhost ~]# su - myquota4
上一次登录:四 11月 16 10:47:02 CST 2023pts/0 上
[myquota4@centos7 ~]$ dd if=/dev/zero of=/project/file5 count=1 bs=300M
dd: error writing ‘/project/file5’: Disk quota exceeded
1+0 records in
0+0 records out
127533056 bytes (128 MB) copied, 0.454017 s, 281 MB/s


file6就更创建不了了 [root@localhost ~]# su - myquota5 [myquota5@centos7 ~]$ dd if=/dev/zero of=/project/file6 count=1 bs=300M dd: error writing ‘/project/file6’: Disk quota exceeded 1+0 records in 0+0 records out 0 bytes (0 B) copied, 0.0559071 s, 0.0 kB/s [myquota5@centos7 ~]$ ll -h /project/ total 1022M -rw-r--r--. 1 myquota1 myquotagrp 300M Nov 16 10:52 file1 -rw-r--r--. 1 myquota2 myquotagrp 300M Nov 16 10:52 file2 -rw-r--r--. 1 myquota3 myquotagrp 300M Nov 16 10:53 file4 -rw-r--r--. 1 myquota4 myquotagrp 122M Nov 16 10:53 file5 -rw-r--r--. 1 myquota5 myquotagrp 0 Nov 16 10:53 file6 [myquota5@centos7 ~]$

  从上面结果可以验证:组内的用户是共享空间或文件数的,并不是平均分配组限额的空间,而是先到先得,谁先占用,谁就有可能占满这空间,后来的就没有空间可用的。

 

posted @ 2023-11-16 15:48  粉色纽扣  阅读(432)  评论(0编辑  收藏  举报