磁盘配额从字面意思上看就是给一个磁盘配置多少额度,而quota就是有多少限额的意思,所以总的来说就是限制用户对磁盘空间的使用量。
因为Linux是多用户多任务的操作系统,许多人公用磁盘空间,举个例子像/home目录是存放普通用户家目录的地方,我们假如home目录一共有10G空间,而home下一共有三个用户,那么正常划分的话每个人应该是分得大概333M空间,但是其中有个用户在家目录下存放了很多音频文件占了8G的空间,这样的话对其他用户就显得不公平,而如果想要磁盘容量公平的分配,这个时候就要靠quota来实现了。
检查机器有无安装quota文件,若无安装,使用yum -y install quota指令安装即可:
安装完成后,我们即可使用quota指令:
确认机器已经安装quota后,我们检查需要进行磁盘配额的文件系统是否支持quota,检查方式如下:
如上,我们看见在fstab文件中的options列上,sdb1拥有了两个参数:usrquota和grpquota,很明显,这两个参数正是文件系统支持quota的证明:
- usrquota:支持针对用户进行的磁盘配额,后期会在挂载点内产生aquota.user配额文件
- grpquota:支持针对用户组进行的磁盘配额,后期会在挂载点内产生aquota.group配额文件
拥有以上任意一个参数,即代表该文件系统支持quota磁盘配额,我们只需检查磁盘有无支持quota,不支持将其添加quota标识,将其重新挂载。检查完毕后,我们使用quotacheck指令来扫描磁盘,以获得aquota.user配额文件和aquota.group配额文件。
quotacheck
扫描某个磁盘的配额空间,以分区为单位进行扫描。由于磁盘在扫描的过程中持续运行,可能在扫描过程中文件会增加(或减少),造成磁盘配额扫描的错误,所以当使用quotacheck指令时,磁盘将自动被设置成只读扇区,扫描完毕后,扫描所得的磁盘空间结果会被写入aquota.user配额文件和aquota.group配额文件当中
关于quotacheck的常见参数:
- -a: 扫描在/etc/fstab文件里,有加入quota设置的分区。
- -d :详细显示指令执行过程,便于排错或了解程序执行的情形。
- -g :扫描磁盘空间时,计算每个群组识别码所占用的目录和文件数目
- -R :排除根目录所在的分区。
- -u :扫描磁盘空间时,计算每个用户识别码所占用的目录和文件数目.
- -v :显示指令执行过程。
在使用quotacheck时,如果只使用quotacheck -a,那么可能会导致磁盘在扫描时,只会留下aquota.user的文件,在此,我们推荐quotacheck指令使用固定的参数集合形式:quotacheck -avgu或者使用quotacheck -guv [目标文件系统],先前一个是扫描整个fstab文件中支持quota的文件系统,而后者则是指定扫描目标文件系统,无论使用哪一种,在成功后都会产生aquota.user配额文件和aquota.group配额文件
使用quotacheck指令检查完磁盘配额信息,并创建好对应配额文件后,我们需要使用edquota来对指定目标进行具体的磁盘配额操作:
此处的用户和用户组都是提前准备的!
edquota
Linux edquota命令用于编辑用户或群组的磁盘配额
edquota预设会使用vi来编辑使用者或群组的磁盘配额设置
关于edquota的常见参数:
- -u :设置用户的磁盘配额,这是预设的参数。
- -g :设置群组的磁盘配额。
- -p:<源用户名称> 将源用户的磁盘配额设置套用至其他用户或群组。
- -t: 设置宽限期限。
- 关于edquota对于目标作用后的显示(目标为用户):
- 关于edquota对于目标作用后的显示(目标为用户组):
关于edquota中的参数解析:
当edquota作用于用户/用户组时,其参数是一致的,其意义也是一致的,只是作用于用户或是用户组的区别,其各项参数的意义大致如下:
- Filesystem:显示出可作用的文件系统(支持quota的文件系统)
- blocks:显示该用户/用户组在该文件系统下已经占用的磁盘资源(单位默认为Kb)此处并非是给用户更改的参数!!
- soft(1):此处为对应blocks的软限制,即可以超过,但是会被警告的限制级别
- hard(1):此处为对应blocks的硬限制,即不可超过的限制级别
- inodes:显示该用用户/用户组在该文件系统下已经拥有/创建的文件、文件夹数量 此处并非是给用户更改的参数!!
- soft(2):此处为对应inodes的然限制,即可以超过,但是会被警告的限制级别
- hard(2):此处为对应inodes的硬限制,即不可超过的限制级别
- 关于edquota -t的显示:
结束了对目标用户/用户组的配额限制之后,我们可以启用quota了,使用**quotaon**指令,我们即可启用quota系统
quotaon
Linux quotaon命令用于开启磁盘空间限制。执行quotaon指令可开启用户/用户组的磁盘配额限制,各分区的文件系统根目录必须有quota.user和quota.group配置文件。
关于quotaon的常见参数:
- a 开启在/ect/fstab文件里,有加入quota设置的分区的空间限制。
- g 开启群组的磁盘空间限制。
- u 开启用户的磁盘空间限制。
- v 显示指令指令执行过程。
一般来说,我们会将以上参数全部使用,这并不会出现问题,倒不如说,参数不完整,更容易出现问题:quotaon -avgu
以上操作全部完成后,我们的磁盘配额操作即完成,我们可以使用quota指令来查看用户或者用户组的磁盘配额占用情况:
quota
Linux quota命令用于显示磁盘已使用的空间与限制。 执行quota指令,可查询磁盘空间的限制,并得知已使用多少空间。
关于quota指令的常见参数:
- g 列出群组的磁盘空间限制。
- q 简明列表,只列出超过限制的部分。
- u 列出用户的磁盘空间限制。
- s 可以选择用inode或者磁盘容量的限制值来显示(例如显示单位K)。
- v 显示该用户或群组,在所有挂入系统的存储设备的空间限制。
- V 显示版本信息。
对于用户,我们一般以如下方式使用,使用结果如下:
quota -suv [目标用户]:
对于用户组,我们一般以如下方式使用,使用结果如下:
quota -sgv [目标用户组]:
若直接使用quota -sgv/-suv,不带有**目标用户组或者目标用户**的话,其指令默认显示当前用户的quota值: