quota 基础配置、XFS 文件系统配额.note
·首先至少添加一块硬盘:

lsblk
# 这里我添加了 5块硬盘,选择 sdd 进行使用 
一、配置 quota 磁盘配额:
1、配置 quota:
(1)安装 quota:
apt install -y quota(2)配置刚刚添加的硬盘,将其挂载、格式化:
1、创建一个用于挂载的目录:
mkdir /quota_test2、编辑 /etc/fstab:
vim /etc/fstab
3、将硬盘格式化:
mkfs.ext4 /dev/sdd4、挂载:
mount -a5、查看是否挂载成功:
mount | grep quota挂载成功:

2、配置 用户配额:
(1)创建 quota 相关的 用户 和 组 的文件,不尝试重新挂载文件:
quotacheck -cugm /quota_test-c //创建
-u //用户
-g //组

(2)为 指定用户配置 磁盘配额:
edquota -u skills //-u指定用户,为 skills用户配置 磁盘配额
# 按 Ctrl + o 保存,按 Enter 回车确认保存文件路径,然后按 Ctrl + x 退出
或者
# 按 Ctrl + x,输入 y 进行保存,按 Enter 回车,再按 Ctrl + x 退出
(3)启用 quota:
quotaon /quota_test(4)测试 配额:(inodes字段【文件个数】)
1、切换到 skills 用户;(配额限制的用户)
chmod 777 /quota_test //让 skills 用户有权限编辑该目录
su skills 2、先创建三个 文件,测试软配额:(因为软配额定义了 2 个文件)
touch /quota_test/123
touch /quota_test/1234此时提示已经超出了限额,但是文件是创建成功的

3、再创建一个文件,测试 硬配额:
touch /quota_test/12345此时已经无法再创建了,因为它不能够超过硬配额限制

·参数解释:
# blocks 块: 文件存储单位 (在这里可以理解为约等于多少kb),这里的112 代表当前skills用户已经占用了112个blocks的存储空间
# inodes 节点: 文件和目录的节点单位(在这里可以理解为存储多少个文件数量,这里的3代表skills用户已经创建了三个节点的文件数量
# soft 软配额:当到达这个值的时候讲收到警告,并且在宽限时间内,用户可以超过软配额的一定量,即在一段时间内允许超过100的文件。
# hard 硬配额:当到达这个值的时候收到警告,不允许继续创建,用户的磁盘空间在任何时候都不能超过
# Grace Period 宽限时间:宽限时间是指软配额的限制时间,即用户可以在此时间内超过软配额而不会受到系统限制。在这个时间内你可以用来调整或者清理文件,以确保在这段时间内不会受到系统的限制。3、设置 软配额 宽限时间:
在这段时间内,使用的空间可以超过软配额,但是不能超过硬配额
(1)对整个文件系统配额 设置 软配额的宽限时间:
edquota -t(2)对单个 指定的用户设置 软配额 的宽限时间:
edquota -T -u skills默认都为7天:

对其修改:(改成你所需要的时间)

当创建的文件超过软配额后,会有 5分钟(上面定义的)宽限时间,过了这5分钟后,超过配额限制的文件将会被删除
(3)查看 软配额宽限时间是否设置成功:
repquota -v /quota_test
4、批量设置 配额:(复制一个用户的配额给另外一个用户)
(1)先 创建一个用户:
adduser elysia(2)查看 当前的 配额:(显示配额使用情况)
repquota -v /quota_test
# 可以看到此时只有一个用户
(3)复制 一个用户的 配额 给 另外一个用户:
edquota -p skills elysia //将 skills用户 的配额 复制 给 elysia 用户
edquota -p skills elysia user1 user2 user3 user4(4)查看 用户的 配额是否复制成功:
repquota -v /quota_test用户配额 复制成功:

5、对组设置磁盘配额:
(1)创建一个 组,创建一个用户并将其加入组:
groupadd aaa
adduser tw
usermod -a -G aaa tw //将 用户 tw 加入 aaa 组(2)对组设置磁盘配额
setquota -g aaa 10M 20M 2 4 /quota_test //对 aaa 组设置 磁盘配额·代码解释:
-g 指定要设置的组
第一个数(10M) 表示设置 软限额为 10M
第二个数(20M) 表示设置 硬限额为 20M
2 设置 文件个数的 软限额 为 2 个
4 设置 文件个数的 硬限额 为 4 个(3)查看 配额:
repquota -g -v /quota_test
# -g 参数 能够查看组
二、XFS 文件系统配额:
·先添加一个硬盘,这里不再赘述
1、配置 XFS文件系统 磁盘配额:
(1)安装 软件包:
apt install -y xfsdump xfsprogs(2)查看硬盘,以 XFS格式 对硬盘进行 格式化:
lsblk
# 这里使用 sdc 硬盘进行操作
·以 XFS格式 格式化 硬盘:
mkfs.xfs /dev/sdc
(3)创建一个目录,并将格式化后的 XFS硬盘 挂载上去:
mkdir /quota_xfs
mount -o uquota /dev/sdc /quota_xfs(4)设置 磁盘配额限制:
xfs_quota -x -c 'limit bhard=100m skills' /quota_xfs //为 skills 设置磁盘配额·参数解释:
这条命令的作用是使用xfs_quota工具,针对文件系统/quota_xfs中的组"skills"设置磁盘配额限制。
具体参数的含义如下:
-x //表示在批处理模式下运行xfs_quota。
-c 'limit bhard=100m skills' //表示执行一条限制硬盘配额的命令。其中,bhard=100m表示设置硬盘配额限制为100兆字节;skills则是指定要限制配额的组名称。
/quota_xfs //表示要操作的文件系统路径。(5)查看 磁盘限额配置;
xfs_quota -x -c 'report -h' /quota_xfs/
三、配置 Project quota(针对项目的磁盘配额)
·添加一块硬盘
1、配置 Project quota:
(1)安装软件包:
apt install -y xfsdump xfsprogs(2)查看磁盘,将其格式化:
·查看磁盘:
lsblk
# 这里选择使用 sde
·将其格式化:
mkfs.xfs /dev/sde
(3)创建一个目录,并将其挂载到目录:
mkdir /xfs
mount -o prjquota /dev/sde /xfs(4)使用xfs_quota工具,在/xfs 目录 中创建一个名为"1"的项目:
xfs_quota -x -c 'project -s -p /xfs 1'
·代码解释:
-x: 表示在批处理模式下运行xfs_quota。
-c 'project -s -p /quota_xfs 1': 表示执行一条创建项目的命令。其中,-s表示启用项目配额功能,-p /quota_xfs表示设置项目的根路径为/quota_xfs,而1则是指定要创建的项目的名称。(5)使用xfs_quota工具,针对项目"1"设置磁盘配额限制:
xfs_quota -x -c 'limit -p bhard=10M 1'
·代码解释:
-x: 表示在批处理模式下运行xfs_quota。
-c 'limit -p bhard=10M 1': 表示执行一条限制项目磁盘配额的命令。其中,-p表示该限制适用于项目,bhard=10M表示设置项目的硬盘配额限制为10兆字节,而1则是指定要设置配额的项目名称。2、检查 配置:
xfs_quota -x -c report /xfs
3、配置 xfs 重启生效:(将其写入 fstab 中)
vim /etc/fstab