「Quota」- 磁盘配额

什么是磁盘配额?

用于限制用户或者组在指定的分区上可用的磁盘空间或文件个数。

常见概念及使用范围

用户配额和组配额

既可以对用户进行配额,也可以对组进行配额。

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

既可以限制用户的可用磁盘空间,也可以限制用户可创建的文件数。

软限制和硬限制

软限制为一个告警界限,达到软限制后,用户将收到警告。

硬限制是真正的限制,达到这个限制之后,用户就不能在使用磁盘。

宽限时间

当用户已使用空间介于软限制和硬限制之间,用户收到警告,但是只警告指定的天数,这个天数就是“宽限时间”。如果在宽限时间内,用户不处理(比如删除文件以减少已使用空间),则到达宽限时间后,用户可用空间直接降到软限制的大小。

注意事项

只能限制普通用户和组,不能用于限制root用户;
只能针对于分区;
既可以限制用户占用的磁盘空间大小,也可以限制用户占用的文件个数;

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

配置磁盘配额

以分区/dev/sda1为例。并假设/dev/sda1,挂载在/mnt/quota/中。我们的目标是限制www用户使用的磁盘空间及创建的文件数。

首先你需要进入/dev/sda1的挂载目录/mnt/quota/中。

#1 开启分区的磁盘配额功能

以usrquota、grpquota挂载分区:mount -o remount,usrquota,grpquota /dev/sda1

#2 创建磁盘配额配置文件

创建初始化的磁盘配额文件:quotacheck -avug

此时会在/mnt/quota/中创建aquota.user、aquota.group这两个文件。

#3 设置用户的磁盘配额

用户和组的磁盘配额信息分别保存在aquota.user、aquota.group这两个文件中,但是不能直接编辑它们,需要使用edquota(8)命令进行编辑。

例如,我们要限制www用户的可用磁盘空间和创建文件个数:edquota -u www

上述命令会打开vi编辑器进行编辑。输出中有七个列,分别是:文件系统、已使用块数、软限制、硬限制、已使用inode数、软限制、硬限制。

#4 修改宽限时间

如果要修改宽限时间,则执行:edquota -t

依旧是启动vi编辑器进行编辑。

#5 启动磁盘配额

配置完成后,执行quotaon -vug /mnt/quota/来启动磁盘配额。

如果要关闭磁盘配额,则可以使用quotaoff(8)命令。

#6 磁盘配额查询

如果要查看磁盘配额的使用情况,可以使用quota命令:quota -vsu www

或者repquota命令:reqquota -augvs

#7 磁盘配额测试

测试就是测试,创建文件进行测试即可。

非交互式配置

如果要在脚本中使用磁盘配额,就不能使用edquota等命令,而应该使用setquota命令。

参考文献

《细说Linux系统管理》
鸟哥的Linux私房菜/第十四章、磁碟配額(Quota)與進階檔案系統管理
Ubuntu quota format not supported in kernel