磁盘配额管理

磁盘配额管理

由于Linux是一个多用户管理的操作系统,而Linux默认情况下并不限制每个用户使用磁盘空间的大小,假如某个用户疏忽或者恶意占满磁盘空间,将导致系统磁盘无法写入甚至崩溃;为了保证系统磁盘的有足够的剩余空间,我们需要对用户和组进行磁盘空间使用限制。

限制类型:1.限制用户和组对磁盘空间的使用量(data block),2.限制用户和组在磁盘内创建文件的个数(inode)

磁盘配额的限制级别:软限制:低级限制,此限制可以突破,突破时会被警告

​ 硬限制:绝对限制,此限制不会被突破,达到指定限制后无法使用更多空间

​ 宽限天数:允许用户在每个文件系统指定的宽限期内超过他们的软限制。一旦宽限期过期,软限制将作为硬限制强制执行

注意:磁盘配额是针对分区进行设置的

查看内核是否支持磁盘配额

在命令行执行grep “CONFIG_QUOTA” /boot/config-3.10.0-957.el7.x86_64

[root@localhost ~]# grep "CONFIG_QUOTA" /boot/config-3.10.0-957.el7.x86_64
CONFIG_QUOTA=y                        #这个结果显示,内核是支持磁盘配额的
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y
CONFIG_QUOTACTL_COMPAT=y

查看挂载的分区是否支持配额属性

[root@localhost ~]# df -h  #查看挂载的分区
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  1.8G   16G  11% /
devtmpfs                 475M     0  475M   0% /dev
tmpfs                    487M     0  487M   0% /dev/shm
tmpfs                    487M  7.6M  479M   2% /run
tmpfs                    487M     0  487M   0% /sys/fs/cgroup
/dev/sda1               1014M  133M  882M  14% /boot
tmpfs                     98M     0   98M   0% /run/user/0
/dev/sdb1                2.0G   33M  2.0G   2% /ss #目标磁盘
#查看目标分区是否支持磁盘配额
[root@localhost ~]# mount | grep /ss
/dev/sdb1 on /ss type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)  #usrquota,grpquota这两个属性是支持磁盘配额的
#如果是noquota属性,则需要重新挂载
[root@localhost ~]# umount /ss  #取消挂载
[root@localhost ~]# vim /etc/fstab #将usrquota,grpquota,写入fatab
/dev/sdb1 /ss xfs defaults,usrquota,grpquota 0 0  #写入属性
[root@localhost ~]# mount -a #刷新挂载权限

创建用户

创建的用户为一个组,控制变量

[root@localhost ~]# useradd -g old laow
[root@localhost ~]# useradd -g old laos
[root@localhost ~]# useradd -g old laom

设置用户在指定的磁盘上的配额

xfs_quota命令:

-x:专家模式

-c:用来指定后续规则作为quota命令的参数(若不指定默认以交互式进行)

limit:设置限制的命令

容量限制:bsoft(软限制) bhard(硬限制)

文件数限制:isoft(软限制) ihard(硬限制)

[root@localhost ~]# xfs_quota -x -c 'limit isoft=5 ihard=7 bsoft=10m bhard=12m laow' /ss(/dev/sdb1)  #为用户laow在/ss所挂载的磁盘中做限制

查看某个磁盘的限制信息

[root@localhost ~]#  xfs_quota -x -c 'report' /ss(/dev/sdb1)
User quota on /ss (/dev/sdb1)                               Blocks                     
User ID          Used       Soft       Hard    Warn/Grace     
---------- -------------------------------------------------- 
root                0          0          0     00 [--------]
laow                0      10240      12288     00 [--------]
Group quota on /ss (/dev/sdb1)
                               Blocks                     
Group ID         Used       Soft       Hard    Warn/Grace     
---------- -------------------------------------------------- 
root                0          0          0     00 [--------]

设置组配额

[root@localhost ~]# xfs_quota -x -c 'limit  -g  bsoft=100m bhard=120m isoft=20 ihard=30 old' /ss(/dev/sdb1) #设置组的限制

查看某一用户或者组的配额

格式:quota [参数] 用户(组)

参数:-uvs 用户名,以详细信息常见的单位显示用户的信息

​ -gvs 组名,以详细信息常见的单位显示组的信息

[root@localhost ~]# quota -uvs laow
Disk quotas for user laow (uid 1004): 
Filesystem   space   quota   limit   grace   files   quota   limit   grace
/dev/sdb1      0K  10240K  12288K               0       5       7      

修改用户或组的磁盘配额

edquota [参数] 用户(组)

参数:-u 指定用户

​ -g 指定组

[root@localhost ~]# edquota -u laow  #修改用户laow的磁盘配额
Disk quotas for user laow (uid 1004):  #直接修改数值即可
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb1                         0      10240      12288          0        5        7

查看指定磁盘的配额情况

repquota [参数] /dev/sdb1(/ss)

参数:

​ -uvs 查看指定磁盘,用户的限额情况

​ -gvs 查看指定磁盘,组的限额情况

[root@localhost ~]# repquota -ugvs /ss
*** Report for user quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7days                        Space limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      0K      0K      0K              3     0     0       
laow      --      0K   1024K   1228K              0     5     7       #挂载/ss目录用户的磁盘限额情况
*** Status for user quotas on device /dev/sdb1
Accounting: ON; Enforcement: OFF
Inode: #67 (2 blocks, 2 extents)
*** Report for group quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7days
                        Space limits                File limits
Group           used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      0K      0K      0K              3     0     0       
old       --      0K    100M    120M              0    20    30         #挂载/ss目录组的磁盘限额情况
*** Status for group quotas on device /dev/sdb1
Accounting: ON; Enforcement: ON
Inode: #68 (2 blocks, 2 extents)

开启/关闭分区的磁盘配额

quotaon [参数] 分区(挂载的目录) #开启分区的磁盘配额

quotaoff [参数] 分区(挂载的目录) #关闭分区的磁盘配额

参数:

​ -uv:启动用户的限额配置

​ -gv:启动组的限额配置

[root@localhost ~]# quotaon -uv /ss  #开启/ss目录挂载分区的用户磁盘配额
Enabling user quota enforcement on /dev/sdb1
/dev/sdb1: user quotas turned on
[root@localhost ~]# quotaon -gv /ss  #开启/ss目录挂载分区的组磁盘配额
Enabling group quota enforcement on /dev/sdb1
/dev/sdb1: group quotas turned on
[root@localhost ~]# quotaoff -gv /ss #关闭/ss目录挂载分区的组磁盘配额
Disabling group quota enforcement on /dev/sdb1
/dev/sdb1: group quotas turned off 
[root@yanzixuan ~]# quotaoff -uv /ss #关闭/ss目录挂载分区的用户磁盘配额
Disabling user quota enforcement on /dev/sdb1
/dev/sdb1: user quotas turned off

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页