什么是磁盘配额?
用于限制用户或者组在指定的分区上可用的磁盘空间或文件个数。
常见概念及使用范围
用户配额和组配额
既可以对用户进行配额,也可以对组进行配额。
磁盘容量限制和文件个数限制
既可以限制用户的可用磁盘空间,也可以限制用户可创建的文件数。
软限制和硬限制
软限制为一个告警界限,达到软限制后,用户将收到警告。
硬限制是真正的限制,达到这个限制之后,用户就不能在使用磁盘。
宽限时间
当用户已使用空间介于软限制和硬限制之间,用户收到警告,但是只警告指定的天数,这个天数就是“宽限时间”。如果在宽限时间内,用户不处理(比如删除文件以减少已使用空间),则到达宽限时间后,用户可用空间直接降到软限制的大小。
注意事项
只能限制普通用户和组,不能用于限制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