1、相关命令和文件

quota、quotacheck、quotaon、quotaoff、quotastats、quotasync、repquota、edquota、setquota

/etc/fstab

aquota.user、aquota.group

2、语法说明

(1)quotacheck

执行quotacheck指令,扫描挂入系统的分区,并在各分区的文件系统根目录下产生quota.user和quota.group文件,设置用户和群组的磁盘空间限制。

参数:

-a 扫描在/etc/fstab文件里,有加入quota设置的分区。

-d 详细显示指令执行过程,便于排错或了解程序执行的情形。

-g 扫描磁盘空间时,计算每个群组识别码所占用的目录和文件数目。

-R 排除根目录所在的分区。

-u 扫描磁盘空间时,计算每个用户识别码所占用的目录和文件数目。

-v 显示指令执行过程。

(2)quotaon

执行quotaon指令可开启用户和群组的空间限制,各分区的文件系统根目录必须有quota.user和quota.group配置文件。

参数:

-a 开启在/ect/fstab文件里,加入quota设置的分区的空间限制。

-g 开启群组的磁盘空间限制。

-u 开启用户的磁盘空间限制。

-v 显示指令指令执行过程。

(3)quotaoff

执行quotaon指令可开启用户和群组的空间限制,各分区的文件系统根目录必须有quota.user和quota.group配置文件。

参数:

-a 关闭在/ect/fstab文件里,有加入quota设置的分区的空间限制。

-g 关闭群组的磁盘空间限制。

-u 关闭用户的磁盘空间限制。

-v 显示指令指令执行过程。

(4)quotastats

显示与配额子系统相关的统计信息

(5)quotasync

(6)quota

执行quota指令,可查询磁盘空间的限制,并得知已使用多少空间,针对单个用户。

参数:

-g 列出群组的磁盘空间限制。

-q 简明列表,只列出超过限制的部分。

-u 列出用户的磁盘空间限制。

-v 显示该用户或群组,在所有挂入系统的存储设备的空间限制。

-V 显示版本信息。

(7)repquota

报告磁盘空间限制的状况,清楚得知每位用户或每个群组已使用多少空间。

参数:

-a 列出在/etc/fstab文件里,有加入quota设置的分区的使用状况,包括用户和群组。

-g 列出所有群组的磁盘空间限制。

-u 列出所有用户的磁盘空间限制。

-v 显示该用户或群组的所有空间限制

(8)edquota

edquota预设会使用vi来编辑使用者或群组的quota设置。

参数:

-u 设置用户的quota,这是预设的参数。

-g 设置群组的quota。

-p<源用户名称> 将源用户的quota设置套用至其他用户或群组。

-t 设置宽限期限。

(9)setquota

对每个用户或每个群组设置配额,方便批量设置配额。

参数:

-a 读取在/etc/mtab文件里有加入quota的分区来设置

-g 对群组的磁盘空间限制。

-u 对用户的磁盘空间限制。

-p 根据参考用户或者群组磁盘空间限制

(10)命令读取/etc/fstab和/etc/mtab

/etc/mtab :quota、quotacheck、repquota、edquota、setquota

/etc/fstab:quotaon、quotaoff

3、安装quota

yum -y install quota*

4、开启对quota支持

#/etc/fstab和/etc/mtab区别

/etc/fstab 是随系统启动要挂载的分区或者使用mount命令挂载的分区

/etc/mtab 是系统实时分区挂载信息,它会根据mount、umount命令动态更新分区挂载信息

也可以理解前者是静态的,后者是动态的

如系统刚启动完成时,/etc/fstab和/etc/mtab显示分区挂载情况是一致的

如果使用umount将某一个分区卸载,那么/etc/fstab与分区实时挂载情况不一致,而/etc/mtab则会根据umount即时更新,与分区实时挂载情况一致

#修改/etc/fstab文件,在第4列添加usrquota和grpquota

/dev/mapper/vg_iredmail-lv_root / ext4 defaults,usrquota,grpquota 1 1

#使用mount重新挂载分区,使用quota支持生效

mount -o remount /

#可以使用mount查看/etc/fstab是否已经添加支持

mount

#有usrquota,grpquota字样表示已经在/etc/fstab添加支持

#如果已经开启quota支持,则会在所扫描分区根目录下建立一个aquota.user或者aquota.group文件

#如果未启用则会报告相关信息

quotacheck -cugmv /

#生成配额文件后默认并没有开启配额功能

#查看状态

quotaon -p / 或者quotaon -pa

#开启限额功能

quotaon -ugv / 或者 quotaon -augv

-a 对/etc/fstab指定所有分区进行

-u 针对用户

-g 针对群组

-v 显示执行过程

#关闭限额功能

quotaoff -augv /

#-a参数,对/etc/fstab 指定有关的分区开启quota,否则后面需要加上分区或者目录

quotaon -augv

#如果aquota.user和aquota.group丢失或者无意删除,可强制重新扫描生成

quotacheck -cugmfv /

5、edquota说明

inode:存放文件属性信息,限制可以创建文件数量

hard :存放文件具体内容,限制可以使用磁盘的容量

6、同时对群组和群组用户设置磁盘配额注意事项

如对IT群组硬限制10G,该群组有4个成员it1、it2、it3和it4分别限额4G、3G、3G和2G

如果it1使用了3G、it2使用了3G、it3也使用了3G,那么it4最多只能使用1G磁盘容量

(it1+it2+it3+it4)使用容量<=所属群组限额10G

7、磁盘配额实例

(1)对用户限额

对用户it软限额1024KB、硬限额2048KB

设置如图,soft:1024,:

Linux磁盘配额_Linux 磁盘配额

限制效果,复制大于2048KB的文件遭到拒绝:

Linux磁盘配额_Linux 磁盘配额_02

限制效果,复制小于2048KB的文件:

Linux磁盘配额_Linux 磁盘配额_03

对用户it已限额最大2048KB容量,同时再将创建文件数量限制。先将原来建立的文件全部删除,因为用些隐藏文件,所以inodes 下显示为5。

Linux磁盘配额_Linux 磁盘配额_04

将创建文件数量软限制为6,硬限制为7:

Linux磁盘配额_Linux 磁盘配额_05

当用户创建到第8个文件时就会遭到拒绝:

Linux磁盘配额_Linux 磁盘配额_06

Inodes数量已达最大限制,所以会遭到拒绝:

Linux磁盘配额_Linux 磁盘配额_07

而同时满足blocks和inodes限制,则不会遭到拒绝:

Linux磁盘配额_Linux 磁盘配额_08

(2)对用户和群组同时限制

添加系统用户并将之添加为samba用户

Linux磁盘配额_Linux 磁盘配额_09

对IT群组软限额2048KB,硬限额4096KB:

Linux磁盘配额_Linux 磁盘配额_10

将用户it建立的文件删除掉,再分别为it1和it2创建1024KB和2048KB大小文件:

Linux磁盘配额_Linux 磁盘配额_11

要将文件属主更改为对应的用户才算是该用户创建的文件:

Linux磁盘配额_Linux 磁盘配额_12

对群组IT硬限额为4096KB即4M,而it1和it2总共已经占用了3M容量,所以用户it创建超过1M文件时会遭到拒绝:

Linux磁盘配额_Linux 磁盘配额_13

创建小于1M文件则不会遭到拒绝:

Linux磁盘配额_Linux 磁盘配额_14

将用户it软限制为256KB,硬限制为512KB,看一看在对群组和用户限额究竟是哪个优先:

Linux磁盘配额_Linux 磁盘配额_15

用户it创建大于512KB小于1024KB文件效果:

Linux磁盘配额_Linux 磁盘配额_16