在Linux系统的多人多任务环境中经常会出现多个用户使用一块磁盘的问题,所以我们为了避免某些用户占用过大空间,使用磁盘配额这一方法限定用户的磁盘使用空间大小,以进行磁盘管理,磁盘配额分为两种:限制大小和限制文件数。
磁盘配额,我们就使用到了quota ,quota是针对整个分区起作用,比如/dev/hda2挂载到home下,/dev/hda2启动磁盘配额,那么对/home下所有目录都会受到限制
quota的限制被容包括下面几部分:
soft:软限制。用户超出软限制后还可以继续使用磁盘空间,但是在宽限的时间内,必须把使用的磁盘空间降到软限制标准下,不然会强行清除
hard:硬限制。用户使用的磁盘空间被严格限制在应限制下,如果用户使用空间超出应限制将会被拒绝并提出警告。
宽限时间:通常与软限制配合使用,用户超出软限制后在宽限时间内还是可以使用超出的磁盘空间。
我们一般定义的磁盘限额是软限制,硬限制与宽限时间配合使用。比如说soft=2048k,hard=4096k,宽限时间=1day。也就是说用户可以超过2048k使用4096k大小的空间,但是一天后会强行清除到2048的大小。
其实quota的用法十分简单:
查询方法:
quota:quota [-guvs] [user,group]
-g:查询组
-u:查询用户
-v:显示qouta值
-s:选择inod或者是磁盘空间来显示
例子:quota -uvs user 显示当前user这个用户的qouta值
quotacheck: 扫描一个磁盘的quota空间并创建配额文件quota.user,quota.group
进入单用户模式用quotacheck直接对其家目录生成配额文件
我们一般使用的是: quotacheck -cumg /filesystem 对filesyatem分区创建配额文件
-c:创建配额文件
-a:扫描所有以挂载的磁盘空间(在/etc/mtab中定义)
-u:扫描使用者的目录与档案
-v:显示扫描的过程
-g:扫描群组使用的档案与目录
-m:强制扫描创建
编辑quota有两种方法:edquota setquota
edquota:edquota [-u user] [-g group] [-t]
-u:为用户设定磁盘配额
-g:为组设定磁盘配额
-t:设定宽限时间
edquota -p user1 -u user2
-p:将user1用户的quota值复制给user2用户
例子:edquota -u test 会出现如下界面:
Filesystem blocks soft hard inodes soft hard
/dev/hda2 8 0 0 5 0 0 上面界面表示:Filesystem:用户使用从盘所在分区 , block:已使用的空间大小, soft软限制 ,hard 硬限制 , inodes 已使用的inode(文件数目) soft:软限制数目, hard:硬限制数目。空间大小的单位为 K !0表示不做限制
setquota 用户名 空间软限制数 空间应限制数 文件软限制数 文件应限制数
配置宽限时间:quota username -t 时间单位可为days,minutes等
quotaon:开启磁盘配额
quotaon [-a] [-uvg directory]
-a 配置的磁盘配额全部启动
-u 激活diretory目录下用户配额
-g 激活diretory目录下组配额
-s 显示信息
例如:quota -uv /home 激活/home下的用户配额
关闭磁盘配额:quotaoff -a 关闭所有 quotaoff /filesyatem 关闭filesystem配额
具体步骤:
1: #vim /etc/fstab 编辑此文件使磁盘支持quota
选择要配额的分区将default一项改为default,usrquota,grpquota
2:重新挂载文件系统
mount -o remount /dev/hda2
3:扫描创建配额文件:
quotacheck -cumg /home
4:开启磁配额
quotaon /home
5:编辑配额信息:
edquota -u test
Filesystem blocks soft hard inodes soft hard
/dev/hda2 8 2048 4096 5 8 10
6:将test2用户的配额信息配为跟test一样
edquota -p test -u test2
7:设定宽限时间
edquota test -t
8:检查一遍
quota -uv test test2