linux

位置:IT落伍者 >> linux >> 浏览文章

Quota就是在Red Hat linux下实现磁盘配额的工具


发布日期:2022年12月21日
 
Quota就是在Red Hat linux下实现磁盘配额的工具

Quota的安装

在正式的RHLinux的光盘的/RedHat/RPMS目录下都有相应不同版本的quota软件包

可以用ls quota*查看相关的信息如版本号当然你可以方便的通过Tab键获得软件

包的全名使用如下命令安装

rpm ivh quotapreirpm

当然这里给出的版本号只是为了方便说明而已这个版本是随RH一起提供的

新的版本请关注RedHat的官方站点安装好软件包后就可以对磁盘配额进行配置了

配置系统的磁盘配额支持

首先磁盘配额是区域性的我们可以决定哪块分区进行磁盘配额哪块分区不用

(自然也就不用配置了)一般而言作为一台web虚拟主机服务器/home和/www(或

者类似的)是供用户存放资源的分区所以可以对这两个分区进行磁盘配额假定我们

需要对/home分区实现用户级的限制而对/www进行每个组的用户配额

◆第一步vi /etc/fstab(对了你是管理员吗?^&^)

找到对应于/home和/www的行例如

/dev/sda /home ext defaults

/dev/sda /www ext defaults

在/home里实现用户级的磁盘配额所以对sda行的挂装选项域做如下修改

/dev/sda /home ext defaultsusrquota

注意是usrquota哦类似的我们可以如下修改/www行

/dev/sda /www ext defaultsgrpquota

◆第二步修改/etc/rcd/rclocal脚本添加如下脚本

#############################

#check quota and turn quota on

if [x /sbin/quotacheck ];then

echo Checking quotasThis 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/quotauser

touch /www/quotagroup

修改这两个文件的许可属性使它只对root用户有读和写的许可

◆第四步重新启动系统

这样系统在运行配额检查的时候会在配额文件中创建磁盘使用信息到这里

们已经完成磁盘配额所需要的系统级的支持配置接着我们就可以将配额分配给用户

设置用户和组配额的分配量

对磁盘配额的限制一般是从一个用户占用磁盘大小和所有文件的数量两个方面来进

行的在具体操作之前我们先了解一下磁盘配额的两个基本概念软限制和硬限制

软限制一个用户在文件系统可拥有的最大磁盘空间和最多文件数量在某个宽限

期内可以暂时超过这个限制

硬限制一个用户可拥有的磁盘空间或文件的绝对数量绝对不允许超过这个限制

◆使用编辑配额命令edquota为用户配置定额

在重新启动系统之后我们假设lanf是需要定额的系统帐户可以使用如下命令来

为用户分配磁盘配额

edquota u lanf

这个命令将启动默认文本编辑器(如vi或其他由$EDITOR 环境变量指定的编辑器)

其内容如下所示

Quotas for user lanf:

/dev/sda:blocks in use:limits(soft = hard = )

inodes in use:limits(soft = hard = )

这表示lanf用户在/dev/sda分区(该分区已经在usrquota的控制之下)中迄今使用

个数据块(以K为单位)并且没有设限制(包括软限制soft和硬限制hard)同样

lanf在这个分区也没有任何文件和目录并且也没有任何软硬限制

如果我们想对用户进行磁盘容量的限制的话只需要修改blocks行的limits部分

就可以了注意单位使用的是K例如要为lanf分配M磁盘的软限制M硬限制

以使用如下的设置

Quotas for user lanf:

/dev/sda:blocks in use:limits(soft = hard = )

inodes in use:limits(soft = hard = )

同样的要对文件目录的数量限制可以相应的修改inodes行我们也可以同时对这

两项都作出限制只需要如下的修改

Quotas for user lanf:

/dev/sda:blocks in use:limits(soft = hard = )

inodes in use:limits(soft = hard = )

这表示除了相应的容量的限制外还对文件/目录的数量做了个的软限制和

个的硬限制在保存了新的配置后该用户的磁盘使用就不能超过硬限制如果用户

试图超过这个限制该操作将被取消然后得到一个错误信息

但是如果每个用户都要这么麻烦的设置的话那这种重复的体力劳动实在有点令

人不寒而栗而且也太浪费时间了幸好edquota还有个q参数(prototype)可以对已

有的用户设置进行拷贝例如我们想对JackTomChen三个用户使用和lanf一样的限

额配置可以使用如下的命令

edquota p lanf u Jack Tom Chen

这样一来这三个用户就被赋予了和lanf一样的磁盘配额

对组的配额除了edquota命令中对应u参数的改为g参数例如下面对webterm

的操作

edquota g webterm

实际上以上的限制只是对用户设定的硬限制在起作用如果需要使软限制也起作

用的话还需要对用户的软限制设定宽限期——缺省的软限制的宽限期是无穷大——

这可以使用edquota命令的t选项来实现运行下面的命令

edquota t

edquota将打开缺省编辑器显示如下内容

Time units may be:dayshoursminutesor seconds

Grace period before enforcing soft limits for users:

/dev/sda:block grace period: daysfile grace period: days

可以使用天小时秒为单位来设定宽限期例如在下面这个例子中磁盘

空间限制的宽限期为两天而文件数量限制的宽限期只有个小时

Time units may be:dayshoursminutesor seconds

Grace period before enforcing soft limits for users:

/dev/sda:block grace period: daysfile grace period: hours

◆查看用户磁盘使用情况

要查明某一个用户使用了多少磁盘空间例如lanf可以使用如下的命令

quota u lanf

显示

Disk quotas for user lanf(uid ):

Filesystem blocks quota limit grace file quota limit grace

/dev/sda

同样可以使用quota g groupname命令来参看某个组的磁盘使用情况

注意 如果该用户没有配置磁盘限额的话输出显示如下

Disk quotas for user hujm (uid ): none

如果不带任何参数运行quota的话查看的是你自己的配额使用情况

               

上一篇:Linux之菜鸟日记(二)

下一篇:Linux IP Masquerade mini HOWTO 中译版(2)