Linux磁盘配额管理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux磁盘配额管理
作者: 出处:Linux伊甸园 ( 3 ) 砖 ( 8 ) 好 评论 ( 0 ) 条 进入论坛
更新时间:2005-12-13 14:57
关 键 词:Linux
阅读提示:你是不是想在跟分区做配额?这样是可以的。
你是不是想在跟分区做配额?这样是可以的。
首先,你要修改你的/etc/fstab文件:
LABEL=/ / ext3 defaults 1 1
改为:
LABEL=/ / ext3 defaults,usrquota 1 1
或者改为:
LABEL=/ / ext3 defaults,grpquota 1 1
usrquota是基于用户的磁盘配额,grpquota是基于组的磁盘配额,怎么改就看你需要了。
之后你或者重新启动一下,或者remount一下(mount -o remount / 。
第二,在 / 中建立er或aquota.grup,这两个文件要建立在你要实现配额的顶级目录,所谓定级目录,就是 ̄ ̄咋解释呢?就是比如你要在 / 上实现配额,就要在 / 下建立er或者aquota.grup;如果你要在/home上实现配额(当然你的/home应该是一个独立的磁盘分区),就在 /home下建立这两个文件中的一个。用touch命令建立就可以了,touch er 或aquota.srup。但这时建立好的文件是空的,不符和系统的需要。所以执行下一步。
第三,用quotacheck -mc / 将这两个文件(er或aquota.grup)格式化。
注意一下,除非是/分区,一般不用加-m参数,比如你要在/home上实现配额(当然你的/home应该是一个独立的磁盘分区)就:quotacheck -c /home 就可以了。
-m的意思是强迫在“读、写”模式下检查硬盘的配额。
第四,quotaon / 启动磁盘配额。
第五,edquota 用户名/组名 设置用户/组的配额
例如:edquota user_name
edquota -g group_name (对于用户组)
执行后会打开一个vi编辑窗口。可以设置磁盘空间和节点数目的配额。其中soft只是起到警告的作用,并不会真正的限制用户/组。hard就会强制限制用户/组的磁盘空间和节点数目了。
第六,设定soft quota和hard quota之间的时间:
edquota -t
出现一个 vi 窗口:
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hda7 7days 7days
按照自己的需要修改吧。重新启动就可以了。磁盘限额就生效了。
第七,如果要成批的复制相同的磁盘配额给不通用户:
edquota -p user user1 user2 user3
edquota -g -p group group1 group2 group3
第八,取消磁盘限额:
quotaoff /


***************************************************************************************
在一个多用户的系统上必须限制每个用的磁盘使用空间,以免任何用户占用过多的磁盘空间影响系统运行和其他用户的使用.其方法就是给用户分配磁盘配额!

下面我就 讲一下怎样来 设置磁盘配额

1.启用系统的功能

一种是启用部

分目录的磁盘配额,还有就是启用根分区的配额:1.比如要启用home分区的quota功能就需用vi来编辑一下fstab文件如下:

# vi /etc/fstab

找到/home所在的行做以下修改

/devhda6 /home ext3 rw ,grpquota,usrquota 其中grpquota是启用组的配额,usrquota是启用用户的配额.

2.创建quota文件

在启动了quota功能以后系统会自动查找两个配置 信息文件:er和quota.group,好了现在我们就来创建它们:

# quotacheck -guva

3.我们来设置quota吧!

#edquota -u rock<用户>

回车以后可以看到命令调用了vi,然后就看你怎么分配了改完以后别忘了:wq呀!

4.让配额系统启动是就运行

把#quotaon -ugva 写到启动脚本里就可以了!/etc/rc.d/rc.local

5.查看配额状态

bash$ quota -a
****************************************************************************************
linux下quota磁盘配额管理


中心有台共享的电脑(其实还没有取的老师的许可),同学装上了RedHat 9.03,还差不多告诉了所有人root密码,这显然是不明智的作法,还好现只有我和另一个同学对这个系统稍微了解一些,不会造成太大影响,为防止新手权限过高对系统造成的不良影响,我改了root密码。
我是不知道root密码的,但可以很轻松了去掉,方法很多,在此我就不多说了,有兴趣的可以研究所有可能的办法。我算是认识到接触硬件系统毫无安全可言了。
机器比较老,硬盘才14G,但是N多人建了帐户,为了系统的稳定,磁盘管理看来是势在必行。我上网收了收,很多介绍此类文章的,也很详细,为了加深印象,我也写写。
quota可以方便的管理用户使用磁盘空间的大小和文件的数目,基于这一点,我可以轻松的保证磁盘的正常稳定的使用。
现如今很多linux发行版内核都支持quota,并且也带有quota的所有工具,如果没有这些,那可能还得重新编译内核,并安装quota工具了,这一点可以上网上找到相应的解决办法,于此我也不细说了,事实上我没有经历这个过程,也没法写了。
首先明确要对那些分区实施配额管理,如我只是对/home实行管理。你需要编辑/etc/fstab文件,做如下修改(以我的系统为例)
shell#vi /etc/fstab
LABEL=/ / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/hda2 swap swap defaults 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0



注意红色部分,usrquota表示对用户实施配额管理,grpquota表示对组实施配额管理,要使修改生效,若是没有进程使用的分区,可以重新挂载,如不清楚,最快的办法就是重启系统即可。
接下来,我将用root权限在/home下建立如下文件:
shell#touch /home/er
shell#touch /home/quota.group
shell#chmod 600 /home/quota.*
文件建好后,就可以着手设定配额管理了。
shell#edquota username
Disk quotas for user username (uid 50×):
Filesystem blocks soft hard inodes soft hard
/dev/hda3 32 0 0 8 0 0
这将会用vi打开,并等待修改。Filesystem表示要实施管理的分区;blocks表示此用户已使用的空间,单位为kb;soft 为软限制,即警告线,hard为硬限制,达到此限制后将不允许用户在写盘;inodes为用户当前所有的文档数,其后的soft,hard是对文件的限制,我可人认为可以设大一点或者说设个3000,4000的。
这个用户就算搞定了,其它用户如采用相同的限制,可用如下命令实现:
shell#edquota -p username otherusername
如果你对 awk熟悉的话,还可以这样做:
shell#edquota -p username 'awk -F: '$3>499 {print $1}' /etc/passwd',这将对其它所有用户实施配额管理(uid 500以后的看起来与众不同,这里不好解释,由root建立的用户,默认情况下uid大于500。
以下为其它几个常用的命令
Quotacheck
Quotacheck -avug是用来扫描档案系统的磁碟用量,并更新 "er,quota.group" 此
quota 记录档到最新的状态。

Repquota Repquota -a 产生档案系统之摘要 quota 资讯。 Quotaon 以及 Quotaoff Quotaon 是用来打开quota; quotaoff 则是将其关闭。


***********************************************************************************************
 在网络管理的工作中,由于硬盘的资源是有限的,常常需要为多用户的服务器设定用户
的磁盘配额。这个功能对公用的多用户服务器(免费的或者收费的)来说,更是非常必
要的。Quota就是在Red Hat linux下实现磁盘配额的工具。
Quota的安装
在正式的RHLinux的光盘的/RedHat/RPMS目录下,都有相应不同版本的quota软件包
,可以用ls quota*查看相关的信息,如版本号。当然你可以方便的通过Tab键获得软件
包的全名,使用如下命令安装:
rpm -ivh quota-2.00pre3-7.i386.rpm
当然,这里给出的版本号只是为了方便说明而已,这个版本是随RH7一起提供的。更
新的版本请关注RedHat的官方站点。安装好软件包后,就可以对磁盘

配额进行配置了。

配置系统的磁盘配额支持
首先,磁盘配额是区域性的,我们可以决定哪块分区进行磁盘配额,哪块分区不用
(自然也就不用配置了)。一般而言,作为一台web虚拟主机服务器,/home和/www(或
者类似的)是供用户存放资源的分区,所以可以对这两个分区进行磁盘配额。假定我们
需要对/home分区实现用户级的限制,而对/www进行每个组的用户配额。
◆第一步,vi /etc/fstab。(对了,你是管理员吗?^&^)
找到对应于/home和/www的行,例如:
/dev/sda5 /home ext2 defaults 1 2
/dev/sda7 /www ext2 defaults 1 2
在/home里实现用户级的磁盘配额,所以对sda5行的挂装选项域做如下修改:
/dev/sda5 /home ext2 defaults,usrquota 1 2
注意,是usrquota哦。类似的,我们可以如下修改/www行:
/dev/sda7 /www ext2 defaults,grpquota 1 2
◆第二步,修改/etc/rc.d/rc.local脚本,添加如下脚本:
#############################
#check quota and turn quota on
if [-x /sbin/quotacheck ];then
echo "Checking quotas,This may take some time ... "
/sbin/quotacheck -avug
echo "Done."
fi
if[ -x /sbin/quotaon ];then
echo "Enabling disk quota ... "
/sbin/quotaon -avug
echo "Done."
fi
#############################
这一段脚本在装载完文件系统后运行,它将对磁盘配额的情况进行检查并激活磁盘
配额功能。
◆第三步,为每一个实行配额控制的分区创建配额文件。
如下创建磁盘配额配置文件:
touch /home/er
touch /www/quota.group
修改这两个文件的许可属性,使它只对root用户有读和写的许可。
◆第四步,重新启动系统。
这样系统在运行配额检查的时候,会在配额文件中创建磁盘使用信息。到这里,我
们已经完成磁盘配额所需要的系统级的支持配置。接着,我们就可以将配额分配给用户
了。
设置用户和组配额的分配量
对磁盘配额的限制一般是从一个用户占用磁盘大小和所有文件的数量两个方面来进
行的。在具体操作之前,我们先了解一下磁盘配额的两个基本概念:软限制和硬限制。

软限制:一个用户在文件系统可拥有的最大磁盘空间和最多文件数量,在某个宽限
期内可以暂时超过这个限制。
硬限制:一个用户可拥有的磁盘空间或文件的绝对数量,绝对不允许超过这个限制

◆使用编辑配额命令edquota为用户配置定额
在重新启动系统之后,我们假设lanf是需要定额的系统帐户,可

以使用如下命令来
为用户分配磁盘配额:
edquota -u lanf
这个命令将启动默认文本编辑器(如vi或其他由$EDITOR 环境变量指定的编辑器)
,其内容如下所示:
Quotas for user lanf:
/dev/sda5:blocks in use:0,limits(soft = 0,hard = 0)
inodes in use:0,limits(soft = 0,hard = 0)
这表示lanf用户在/dev/sda5分区(该分区已经在usrquota的控制之下)中迄今使用
了0个数据块(以K为单位),并且没有设限制(包括软限制soft和硬限制hard),同样
,lanf在这个分区也没有任何文件和目录,并且也没有任何软硬限制。
如果,我们想对用户进行磁盘容量的限制的话,只需要修改blocks行的limits部分
就可以了,注意单位使用的是K。例如要为lanf分配100M磁盘的软限制,400M硬限制,可
以使用如下的设置:
Quotas for user lanf:
/dev/sda5:blocks in use:0,limits(soft = 102400,hard = 409800)
inodes in use:0,limits(soft = 0,hard = 0)
同样的,要对文件目录的数量限制可以相应的修改inodes行。我们也可以同时对这
两项都作出限制。只需要如下的修改
Quotas for user lanf:
/dev/sda5:blocks in use:0,limits(soft = 102400,hard = 409800)
inodes in use:0,limits(soft = 12800,hard = 51200)
这表示除了相应的容量的限制外,还对文件/目录的数量做了12800个的软限制和51
200个的硬限制。在保存了新的配置后,该用户的磁盘使用就不能超过硬限制。如果用户
试图超过这个限制,该操作将被取消,然后得到一个错误信息。
但是,如果每个用户都要这么麻烦的设置的话,那这种重复的体力劳动实在有点令
人不寒而栗,而且也太浪费时间了。幸好edquota还有个-q参数(prototype)可以对已
有的用户设置进行拷贝。例如,我们想对Jack、Tom、Chen三个用户使用和lanf一样的限
额配置,可以使用如下的命令:
edquota -p lanf -u Jack Tom Chen
这样一来,这三个用户就被赋予了和lanf一样的磁盘配额。
对组的配额,除了edquota命令中对应-u参数的改为-g参数,例如下面对webterm1组
的操作:
edquota -g webterm1
实际上,以上的限制只是对用户设定的硬限制在起作用。如果需要使软限制也起作
用的话,还需要对用户的软限制设定宽限期——缺省的,软限制的宽限期是无穷大——
这可以使用edquota命令的-t选项来实现。运行下面的命令:
edquota -t
edquota将打开缺省编辑器显示如下内容:
Time units may be:days,hours,minutes,or seconds
Grace period before enforcing soft limits for users:
/dev/sda5:block

grace period:0 days,file grace period:0 days
可以使用天、小时、分、秒为单位来设定宽限期。例如,在下面这个例子中,磁盘
空间限制的宽限期为两天,而文件数量限制的宽限期只有6个小时。
Time units may be:days,hours,minutes,or seconds
Grace period before enforcing soft limits for users:
/dev/sda5:block grace period:2 days,file grace period:6 hours
◆查看用户磁盘使用情况
要查明某一个用户使用了多少磁盘空间,例如lanf,可以使用如下的命令:
quota -u lanf
显示:
Disk quotas for user lanf(uid 503):
Filesystem blocks quota limit grace file quota limit grace
/dev/sda5 3 102400 409800 1 12800 51200
同样,可以使用quota -g groupname命令来参看某个组的磁盘使用情况。
注意: 1、如果该用户没有配置磁盘限额的话,输出显示如下:
Disk quotas for user hujm (uid 503): none
2、如果不带任何参数运行quota的话,查看的是你自己的配额使用情况。
**********************************************************************************

相关文档
最新文档