Linux 系统管理14-磁盘配额(Quota)(课外知识补充02)

一、磁盘配额(quota)概述

在 Linux 系统中,由于是多人多任务环境,所以会有很多人共同使用一个磁盘空间的情况发生。如果其中少数几个使用者大量的占用磁盘空间的话,那势必会压缩其他用户的使用权力,因此,管理员应该适当的限制硬盘的容量给用户,以妥善分配系统资源。 需要安装 quota 包。

1.Quota 的规范设定项目

(1)容量限制(block) 此方法较为常见

(2)文件数量限制(inode)

2.柔性劝导与硬性规定(soft/hard)

不管是 inode 还是 block 限制,分别都有两个限制值,即 soft 与 hard。通常 hard 限制比 soft 要高。

例如,若限制项目为 block,可以限制 hard 为 500M,而 soft 为 400M。那么,用户使用量绝对不可以高于 500M,一旦超过,系统会锁住该用户的磁盘使用权,用户需自行删除一些无用的文件以减少磁盘使用量。若用户在用量低于 400M 时,可以正常使用。若用户使用量介于 400M~500M 之间,则每次用户登入系统时,系统会发出磁盘即将爆满的警告信息,且会给予一个宽限时间(grace time),默认 7 天,若 7 天内使用者将用量降至 400M 以下,则宽限时间会停止,否则超过 7 天后系统将以 400M 作为硬性规定(取代500M)限制,锁住用户的磁盘使用权

二、磁盘配(Quota)的设置

1.涉及命令

(1)quotacheck 命令:扫描文件系统并建立 Quota 的记录文件

1> 格式:quotacheck [选项] [挂载点目录]

2> 常用选项:

-a:扫描所在 /etc/mtab 内,含有 quota 支持的文件系统,加上此参数后可不写挂载点目录。

-u:针对用户扫描文件与目录的使用情况,建立 aquota.user 文件

-g:针对组扫描文件与目录的使用情况,建立 aquota.group 文件

-v:显示扫描过程的详细信息

-f:强制扫描文件系统,并写入新的 quota 配置文件(危险)

-M:强制以读写的方式扫描文件系统(只在特殊情况下才会使用)

常用选项组合:quotacheck -avug

(2)quotaon/quotaoff 命令:启动/关闭 quota 服务

1> 格式:quotaon/quotaoff [选项] [挂载点目录]

2> 常用选项:

-a:根据 /etc/mtab 内的文件系统设定启动有关的 quota 服务,若不加此参数,需在后面指定文件系统

-u:针对用户启动 quota (aquota.user)

-g:针对组启动 quota (aquota.group)

-v:显示启动过程的详细信息

启动/关闭全部用户及组的 quota 服务:quotaon/quotaoff -avug

启动/关闭某一文件系统的用户 quota 服务:quotaon/quotaoff -uv 挂载点目录

(3)edquota 命令:edit quota,编辑用户、组的限值与宽限时间

1> 格式:edquota [选项] [用户] [组]

2> 常用选项:

-u:后面跟用户,可以直接进入 quota 的编辑界面去设定该用户的限制值

-g:后面跟组,可以直接进入 quota 的编辑界面去设定该组的限制值

-t:可以修改宽限时间

-p:复制前一个设置的范本到下一个用户或组

(4)setquota 命令:命令限定 quota 限额

1> 格式:

setquota [-u|-g] [用户|组] [block(soft)] [block(hard)] [inode(soft)] [inode(hard)] [文件系统]

(5)quota 命令:单一用户或组的 quota 报表

1> 格式:quota [选项] [用户 组]

2> 常用选项:

-u:后面跟用户,显示出该用户的 quota 限制值,若不跟用户则显示执行者的 quota 限制值

-g:后面跟组,限制该组的 quota 限制值

-v:显示每个用户在文件系统的 quota 值

-s:人性化单位显示

(6)repquota 命令:针对文件系统的限制配额做报表

1> 格式:repquota [选项] [参数]

2> 常用选项:

-a:查找 /etc/mtab 中具有 quota 标志的文件系统,并报告 quota 的结果

-u:显示出用户的 quota 限值(默认显示此值)

-g:显示出某个群组的 quota 限制值

-v:显示文件系统的详细信息

-s:人性化显示单位

三、磁盘配额示例

实验描述:

新添加 10G 硬盘 /dev/sdb,格式化为 ext4 格式的文件系统(xfs不支持),将 /home 内容备份,挂载此硬盘到 /home 下,恢复原 /home 下的数据。新增 5 个用户(user1-5),属组均为 gtest,要求对 /home 下的磁盘空间进行磁盘配额设置,要求如下:

5 个用户(user1-5)每个用户磁盘用来不超过 500M,当达到 400M 时进行提醒,若 14 天后还未处理磁盘空间将进行锁定。

gtest 组磁盘用来不超过 1500M,达到 1200M 时提醒。

1.安装 quota,备份 /home/ 下的数据,格式化文件系统,挂载,增加 quota 服务,拷贝原数据。

[root@huyouba1 ~]# yum -y install quota

echo "/dev/sdb1 /home ext4 defaults,usrquota,grpquota 0 0" >>/etc/fstab

2.新增 5 个用户(user1-5),属组为 gtest

3.扫描文件系统并建立 Quota 记录文件

4.启动 quota 服务

5.编辑用户、组的限制值与宽限时间

[root@huyouba1 ~]# edquota -u user1

[root@huyouba1 ~]# edquota -p user1 -u user2

[root@huyouba1 ~]# edquota -p user1 -u user3

[root@huyouba1 ~]# edquota -p user1 -u user4

[root@huyouba1 ~]# edquota -p user1 -u user5

配置组限制

[root@huyouba1 ~]# edquota -g gtest

注意:修改 quota 限值时的单位为 Kb

[root@huyouba1 ~]# edquota -t

6.查看 quota 报表

(1)查看 user1 的 quota 报表

发现此时增加 grace,但没有数据,因为我们此时使用量未达到 soft 值(400M)

(2)查看 gtest 组的 quota 报表

(3)查看文件系统的限额报表

7.测试

(1)测试 user1 磁盘使用量达到 450M

发现此时查看磁盘配额报表,user1 后面出现了宽限时间倒数,还剩 13 天。

(2)测试 user2 磁盘使用量达到 500M,尝试写入 501M 内容

此时,user1 在 13 天之内还可以正常写入文件,user2 则无法写入任何文件。

8.使用 setquota 命令修改 user2 的磁盘配额,block(soft)=550M block(hard)=650M

9.关闭 quota 服务

[root@huyouba1 ~]# quotaoff  -ug /home/

[root@huyouba1 ~]# quotaoff  -a

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦