quota主要用于Linux系统的磁盘限额,可以做到针对单个用户、用户组进行磁盘使用量的限制,以下主要进行quota的配置及使用详解。
环境介绍:
Distributor ID: Ubuntu
Description: Ubuntu 18.04.5 LTS
Release: 18.04
Codename: bionic
一、安装
apt-get install quota quotatool
二、磁盘挂载配置
主要是在文件/etc/fstab
中磁盘挂载参数中添加usrquota
和grpquota
参数:
配置修改完毕之后,建议重启设备。
三、quota文件生成
重新连入设备,执行如下命令在上述挂载的磁盘的顶级路径下生成aquota.user
和aquota.group
文件:
quotacheck -cugm /
quotacheck用法:
- c:创建新的quota文件;
- u:检查用户文件aquota.user;
- g:检查组文件aquota.group;
- m:不重复挂载文件系统;
- 因为示例是直接使用的根路径挂载的磁盘,所以上述路径使用的是根路径;
可以看到在/
路径下生成的两个文件:
四、给用户配额
-
文件系统(filesystem):说明该限制值是针对哪个文件系统(或partition);
-
磁盘容量(blocks):这个数值是quota自己算出来的,单位为KB;
-
soft:磁盘容量block的soft限制值,单位为KB;
-
hard:block的hard限制值,单位KB;
-
文件数量inodes:这是quota自己算出来的,单位为个数;
-
soft:inode的soft限制值;当值为0时,表示没有soft限制;
-
hard:inode的hard限制值。当值为0时,表示没有hard限制;
1、配额
edauota -u testuser
上图中testuser用户配额:
- 软限制:10M
- 硬限制:15M
2、宽限期
edauota -t
宽限期默认是7天,将block和inode宽限期修改为12天。
3、查看限额情况
quota -u testuser
可以看到,用户初始目录中:
- 占用block:32
- 占用inode:6
4、测试
- 放入5M文件再查看限额情况
dd if=/dev/zero of=test_01 bs=1M count=5
可以看到block占用数此时为:5152,inode占用数为7。
- 再次放入第二个文件test_02,20M,再查看配额情况:
dd if=/dev/zero of=test_01 bs=1M count=20
可以看到block占用数此时为:15000,inode占用数为8。查看test_02文件大小并没有20M,这就是由于已经达到testuser用户的使用上限,其余部分被限制。同时可以发现触发了宽限期;
- 由于我们并没有对inode进行限制,此时仍然可以创建空文件:
- 我们删除刚才创建的test_02发现宽限期又恢复正常。
如果需要对文件数进行限制可在edquota中对inode项进行配置。
五、quota常用命令
1、命令行配置
语法:setquota user blocks限制 inode限制 文件系统
示例:将testuser限制为:
- block软限制:15000
- block硬限制:20000
- inode软限制:15
- inode硬限制:20
setquota testuser 15000 20000 15 20 /dev/nvme0n1p1
2、复制磁盘配额给其他用户
- 检查用户testuser01配额情况:
- 复制testuser配额给testuser01:
edquota -p testuser -u testuser01
3. 对比testuser和testuser01两个用户配额情况:
repquota -a
3、关掉磁盘配额
quotaoff -a