您当前的位置:首页 > 计算机 > 系统应用 > Linux

Linux 磁盘配额

时间:03-05来源:作者:点击数:

磁盘配合其实就是给每个用户分配一定的磁盘额度,只允许他使用这个额度范围内的磁盘空间。在linux系统中,是多用户多任务的环境,所以会有很多人共用一个磁盘的情况。针对每个用户去限定一定量的磁盘空间是有必要的,这样才显得公平。

在linux中,用来管理磁盘配额的东西就是quota了。如果你的linux上没有quota,则需要你安装这个软件包 quota-3.13-5.el5.RPM (其实版本是多少无所谓了,关键是这个软件包)。quota在实际应用中是针对整个分区进行限制的。如果你的/dev/hda3 是挂载在/home 目录下的,那么/home 所有目录都会受到限制。

quota 这个模块主要分为quota quotacheck quotaoff quotaon quotastats edquota setquota warnquota repquota这几个命令,下面就分别介绍这些命令。

quota 用来显示某个组或者某个使用者的限额。

语法:quota [-guvs] [user,group]

-g :显示某个组的限额

-u :显示某个用户的限额

-v :显示的意思

-s :选择inod或硬盘空间来显示

 

quotacheck 用来扫描某一个磁盘的quota空间。

语法:quotacheck [-auvg] /path

-a :扫描所有已经mount的具有quota支持的磁盘

-u :扫描某个使用者的文件以及目录

-g :扫描某个组的文件以及目录

-v :显示扫描过程

-m :强制进行扫描

 

edquota 用来编辑某个用户或者组的quota值。

语法:edquota [-u user] [-g group] [-t]

edquota -p user -u user

-u :编辑某个用户的quota

-g :编辑某个组的quota

-t :编辑宽限时间

-p :拷贝某个用户或组的quta到另一个用户或组

当运行edquota -u user 时,系统会打开一个文件,你会看到这个文件中有7列,它们分别代表的含义是:

Filesystem :磁盘分区,如/dev/hda3

blocks :当前用户在当前的Filesystem中所占用的磁盘容量,单位是Kb。该值请不要修改。

soft/hard :当前用户在该Filesystem内的quota值,soft指的是最低限额,可以超过这个值,但必须要在宽限时间内将磁盘容量降低到这个值以下。hard指的是最高限额,即不能超过这个值。当用户的磁盘使用量高于soft值时,系统会警告用户,提示其要在宽限时间内把使用空间降低到soft值之下。

inodes :目前使用掉的inode的状态,不用修改。

 

quotaon 启动quta,在编辑好quota后,需要启动才能是quta生效

语法:quotaon [-a] [-uvg directory]

-a :全部设定的quota启动

-u :启动某个用户的quota

-g :启动某个组的quota

-s :显示相关信息

 

quotaoff 关闭quota

该命令常用只有一种情况 quotaoff -a 关闭全部的quota

以上讲了很多quota的相关命令,那么接下来笔者教你如何在实践应用中去做这个磁盘配额。整个执行过程如下:

首先先确认一下,你的/home目录是不是单独的挂载在一个分区下,用df 查看即可。如果不是则需要你跟我一起做。否则这一步即可省略。

[image]

笔者的linux系统中,/home并没有单独占用一个分区。所以需要把/home目录挂载在一个单独的分区下,因为quota是针对分区来限额的。

[image]

笔者用fdisk -l 查看目前/dev/hdb 磁盘有5个可用分区,所以笔者打算把/dev/hdb1挂载在/home 目录下

[image]

看到了吧,目前笔者的/home目录已经是一个单独的分区了。

1)建立测试用户

[image]

首先建立一个test用户,则同时建立了一个test组。可以在/etc/passwd中有以test为开头的行,其中uid和gid都为500 ,然后又建立一个test1账号,使其加入test组,查看/etc/passwd文件发现test和test1用户的gid都为500。(也许你对/etc/passwd文件、增加一个用户以及uid和gid等概念不熟悉,没有关系,在以后的章节中会做介绍,在这里只需要你明白即可)

2)打开磁盘的quota功能

默认linux并没有对任何分区做quota的支持,所以需要我们手动打开磁盘的quota功能,你是否记得,在前面内容中分析/etc/fstab文件的第四列时讲过这个quota选项(usrquota, grpquota)。没错,要想打开这个磁盘的quota支持就是需要修改这个第四列的。用vim编辑/etc/fstab 加入一行,如下图:

[image]

vim命令将会在后续章节详细介绍,前面介绍过如何进入编辑模式以及如何保存文件。如果你的linux系统已经有/home这一行,那么直接修改第四列,加上usrquota,grpguota(中间没有空格)。接下来需要重新挂载/home。

[image]

另外你也可以这样实现重新挂载/home

[image]

如何查看是否启用了quota呢?

[image]

只要查看/etc/mtab文件中/home所在那行是否有usrguota,grpquota即可。笔者的/dev/hdb1现在已经支持了quota

3)扫描磁盘的使用者使用状况,并产生重要的aquota.group与aquota.user

这一步就需要用到quotacheck了,aquota.group与aqouta.user分别是组以及用户磁盘配额需要的配置文件。如果没有这两个文件,则磁盘配额是不会生效的。

[image]

当首次使用quotacheck命令时,会提示“cannot stat old user quota file ……”其实这是在提示你在/home目录下没有aquota.user以及aquota.group两个文件。没有关系,因为以前并没有配置过磁盘配额,当然没有这两个文件了。当执行完quotacheck命令后,会在/home目录下生成这两个文件的。

4)启动quota配额

[image]

5)编辑用户磁盘配额

先来设定test账户的配额,然后直接把test的配额拷贝给test1即可。这里就需要用到edquota了。

[image]

讲上面内容修改为

[image]

其中单位是Kb,所以soft 值大约为20Mb,hard值为30Mb,保存这个文件,保存的方式跟vim一个文件的方式一样的。

[image]

将test的配额复制给test1。下面继续设定宽限时间。

[image]

默认是7days 在这里我们改为1days。下面查看一下test以及test1用户的配额吧。

[image]

6)编辑组磁盘配额

[image]

设定组test的soft配额值为40M,hard值为50M。下面查看组test的配额。

[image]

7)设定开机启动

前面已经讲到启动磁盘配额的命令是quotaon -aug ,所以要想开机启动,只需将这条命令加入到 /etc/rc.d/rc.local文件即可。

[image]

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门