磁盘配额
目录
条件
- 内核必须支持磁盘配额
[root@localhost ~]# grep CONFIG_QUOTA /boot/config-4.18.0-147.el8.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
- 查询系统是否安装quota
[root@localhost ~]# rpm -qa | grep quota
quota-nls-4.04-10.el8.noarch
quota-4.04-10.el8.x86_64
基础概念
- 用户配额和组配额
- 磁盘容量限制和文件个数限制
- 软限制和硬限制
- 宽限时间
磁盘配额步骤
配额实验
- 限制普通用户在分区上使用磁盘空间和文件个数,手工建立一个分区 并挂载到
/disk1
目录下 - 建立被限制的用户和用户组,如:
user1 、user2 、user3
用户 属于test用户组 - test组限制为硬限制500MB,软限制为450MB、user1 为硬限制为50MB 、软限制为40MB,硬限制文件个数为5个、软限制个数为8个 、user2和user3 磁盘容量限制为250MB,软限制为200MB,文件个数不限制、总和为550MB,所以某个用户可能达不到自己的用户限制,而达到组限制就不能写入数据了,如果用户限制和组限制同时存在,以限制小的为主
- 系统宽限改为8天,默认7天
1、分2GB/dev/sdb1
分区,并将磁盘挂载到/disk1目录当中
2.、 建立需要做限制的用户和用户组
[root@localhost ~]# groupadd test //创建test组
[root@localhost ~]# useradd -G test user1 //将user1添加到test组
[root@localhost ~]# useradd -G test user2
[root@localhost ~]# useradd -G test user3
[root@localhost ~]# passwd user1
[root@localhost ~]# passwd user2
[root@localhost ~]# passwd user3
[root@localhost ~]# mount -o remount,usrquota,grpquota /disk1 //重新挂载/disk分区,并加入用户和用户组的磁盘配额功能
永久生效修改/etc/fstab文件
[root@localhost ~]# vim /etc/fstab
/dev/sdb1 /disk1 ext4 defaults,usrquota,grpquota 0 0
[root@localhost ~]# mount -o remount /disk1 //修改配置文件,需要重启或者重新挂载一遍
建立磁盘配额的配置文件
[root@localhost ~]# quotacheck -avug
quotacheck 命令
[root@localhost ~]# quotacheck [选项] [分区名]
选项
-a 扫描/etc/mtab文件中所有启用磁盘配额功能的分区
-c 不管原有的配置文件,重新扫描并建立新的配置文件
-u 建立用户配额的配置文件,也就是生成uqota.user 文件
-g 建立用户组配额的配置文件,aquota.group
-v 显示扫描过程
-m 强制以读写的方式扫描文件系统,和-M类似,一般扫描 "/" 分区时使用
-f 强制扫描文件系统,并写入新的配置文件,用于添加新硬盘分区使用
- 错误提示
建立配置文件时要关闭selinux 不然会报错
[root@localhost ~]# getenforce //查询selinux 开启或关闭
Permissive
[root@localhost ~]# setenforce 0 //临时关闭selinux
永久关闭selinux
[root@localhost ~]# vim /etc/selinux/config //修改配置文件 ,然后重启
用户设置权限
- 其他用户设置限额一样
[root@localhost ~]# edquota -u user1 //进入配置文件修改对应的文件 即可限制
Disk quotas for user user1 (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 0 4000 5000 0 8 11
//分区名 已占用量 软限制 硬限制 已占用文件数 软限制 硬限制
用户组设置权限
[root@localhost ~]# edquota -g test //test是前面创建的组
Disk quotas for group test (gid 1004):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 0 450000 500000 0 0 0
user3用户的配额值和user2用户的一样,我们以user2为模板进行复制
[root@localhost ~]# edquota -p user2 -u user3 // -p 源用户 -u 目标用户
[root@localhost ~]# edquota -t
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/sdb1 8days 8days
//分区名 容量的宽限时间 个数的宽限时间
启动配额
[root@localhost ~]# quotaon -vug /disk1 //启动/disk分区的配额
/dev/sdb1 [/disk1]: group quotas turned on
/dev/sdb1 [/disk1]: user quotas turned on
命令
[root@localhost ~]# quotaon [选项] [分区名]
选项
-a 依据/etc/mtab文件启动所有的配额分区
-u 启动用户配额
-g 启动组配额
-v 显示启动过程的信息
关闭配额
[root@localhost ~]# quotaoff -a //依据/etc/mtab文件关闭配额分区
命令
[root@localhost ~]# quotaoff [选项] [分区名]
选项
-a 依据/etc/mtab文件启动所有的配额分区
-u 启动用户配额
-g 启动组配额
磁盘配额查询
quota查询用户或用户组配额
[root@localhost ~]# quota -uvs user1 //查询
Disk quotas for user user1 (uid 1001):
Filesystem space quota limit grace files quota limit grace
/dev/sdb1 0K 4000K 5000K 0 8 11
命令解析
[root@localhost ~]# quota [选项] [用户名或组名]
选项
-u 用户名 查询用户配额
-g 组名 查询组配额
-v 显示详细信息
-s 以习惯单位显示容量大小.M.G
repqtota查询文件系统配额
[root@localhost ~]# repquota -augvs
命令解析
[root@localhost ~]# repquota [选项] [分区名]
选项
-a 依据/etc/mtab文件查询配额,如果不加-a 选项,要加分区名
-u 查询用户配额
-g 查询组配额
-v 显示详细信息
-s 以习惯单位显示容量大小.M.G
测试
[user1@localhost ~]$ dd if=/dev/zero of=/disk1/testfile bs=1M count=60 //建立testfile文件 ,指定大小60MB
非交互设定用户磁盘配额
[root@localhost ~]# useradd user4
[root@localhost ~]# passwd user4
[root@localhost ~]# setquota -a user4 10000 20000 5 8 /disk1 //设定用户在/disk分区的容量软限制为10MB硬限制为20MB 软限制5个文件 硬限制8个文件
命令解析
[root@localhost ~]# setquota -u 用户名 容量软限制 容量硬限制 个数软限制 个数硬限制 分区名 //常用于批量添加
总结
本文讲解了,磁盘配额,容量限制,对分区进行合理的规划