1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > linux内核 quota Linux磁盘配额(Quota)--鸟哥私房菜笔记

linux内核 quota Linux磁盘配额(Quota)--鸟哥私房菜笔记

时间:2021-07-13 15:42:15

相关推荐

linux内核 quota Linux磁盘配额(Quota)--鸟哥私房菜笔记

1、Quota的概念:磁盘配额,目的是限定用户在磁盘分区上所能使用的空间大小。

2、Quota的一般用途:针对WWW Server,限制没人的网页空间容量

针对Mail Server,每个人的邮件空间限制

针对file Server,限制每个人可用的网络硬盘空间

除了以上网络服务器限制的情况,还可以针对以下情况进行限制:

限制某一群组所能使用的最大磁盘配额

针对群组内的用户进行再次限制

以link的方式进行磁盘配额限制,针对某些无法做Quota的目录,可以link到其他目录

3、Quota的使用限制仅能针对整个filesystem,即只能对整个分区做限制,如果一个分区配置了Quota,则整个分区下的目录都会有影响

Linux内核必须支持Quota,Centos 5.X的版本预设支持Quota,如果自行编译内核,注意要把Quota功能编译进去

Quota的记录文件:Kernel 2.6.XX 的核心版本使用的默认档案是aquota.user和aquota.group

只对一般使用者有效,对root用户无法配置Quota

4、Quota的规范设定项目:容量限制或者档案数量限制(block或inode):

限制inode用量:可以管理使用者可以建立的“档案数量”

限制block用量:管理用户磁盘容量的限制(较常使用方式)

5、柔性劝导和硬性规定(soft/hard):

一般soft值要比hard设定值小,soft相当于警告阈值,比如:某用户soft设定值为400M,而hard设定值则为500MHard:表示使用者的用量绝对不会超过此值,超过则锁定该用户的磁盘使用权;

Soft:表示用户使用量低于此值时,可以正常使用磁盘,若高于此值并低于hard值时,系统会发磁盘将满的警告信息,且给予一个宽限时间(grace time)。如果用户在宽限期倒数期间,将磁盘占用量降低到soft值之下,则宽限期停止计时,恢复正常使用。

宽限时间(Gracetime):

如果用户的磁盘使用量在soft值和hard值之间,则系统会自动启动宽限时间倒计时,宽限时间一般设定为七天,如果用户七天之内没用把磁盘使用量降低到soft之下,则soft值会取代hard值来作为磁盘的Quota限制。

6、Quota配置范例:目的与账号:五个账号为一组,分别为:myquota1、myquota2、myquota3、myquota4和myquota5,密码均为password,这五个账号所属的初始群组为myquotagrp,账号其他属性默认。

账号的磁盘容量限制:五个用户的磁盘使用量hard值设定为150MB,soft值设定为100MB。

群组的限额:设定myquotagrp群组所能使用的磁盘容量为500MB,所以,如果前面四个用户每个占用120MB磁盘容量,最后一个用户只能使用20MB磁盘容量了。

宽限时间的限制:宽限时间默认为7天,这里可以修改为14天宽限期。

在做Quota配置之前先使用简单的shell脚本添加用户和群组,如下:

#!/bin/bash

#使用脚本创建quota实验的用户和群组

groupadd myquotagrp

for username in myquota1 myquota2 myquota3 myquota4 myquota5

do

useradd –g myquotagrp$username

echo “password” | passwd--stdin $usernamedone

以下是Quota配置流程:配置文件系统支持Quota

Quota需要在整个文件系统上配置,所以要先确定配置的目录是否是以整个文件系统挂载的,比如/home目录,使用df –h /home可以检查是否是独立的文件系统

[root@localhost /]# df -h home

FilesystemSize Used Avail Use% Mounted on

/dev/sda6 3.9G 313M 3.4G 9% /home

[root@localhost /]#

确定支持Quota之后,可以使用两种方式配置文件系统的Quota功能:临时支持Quota,重新挂载文件系统或重启后Quota功能消失:

执行命令:mount –o remount,usrquota,grpquota /home

命令中usrquota表示支持用户quota,grpquota表示支持群组quota

使用如下命令可以显示结果:[root@localhost /]# mount | grep home

/dev/sda6 on /home type ext3 (rw,usrquota,grpquota)

[root@localhost /]#

文件系统永久支持Quota,需要把quota功能写入到fstab配置文件中:

在fstab文件中/home行,defaults后面添加usrquota和grpquota,中间使用逗号隔开[root@localhost /]# cat /etc/fstab

LABEL=/ /ext3 defaults 1 1

LABEL=/tmp /tmp ext3 defaults 1 2

LABEL=/opt /optext3 defaults 1 2

LABEL=/home /homeext3 defaults,usrquota,grpquota 1 2

LABEL=/usr /usrext3 defaults 1 2

建立Quota记录文件

Quota会分析整个文件系统,将每个用户(群组)所拥有的档案总数与总容量写入文件系统顶层目录(本例/home目录)下的记录文件中(aquota.user和aquota.group),然后再比较记录文件中的限制值来规范用户或群组的磁盘用量。可以使用quotacheck命令扫描文件系统并建立Quota的记录文件,命令用法如下:

quotacheck[-avugfM] [/mount_point]

选项与参数:

-a:扫描/etc/mtab内,所有支持quota的分区,加此参数后,/mount_point可不写

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

-g:针对群组扫描,会建立aquota.group

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

-f:强制扫描文件系统,并写入新的quota配置文件(危险)-M:强制以读写的方式扫描文件系统,只有特殊情况下使用

本例中,使用命令:quotacheck –avug 命令即可。执行命令后,会在/home目录下产生aquota.user和aquota.group文件,这两个文件不是普通的文本文件,不可以手动添加或者修改。

Quota启动、关闭和限制值设定

配置文件生成后,就可以启动quota了。启动quota的命令:quotaon

关闭quota的命令:quotaoffquotaon [-avug] [/mount_point]

选项与参数:

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

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

-v:显示启动过程的相关信息-a:根据/etc/mtab内的设定启动quota,加上-a不需要mount_point

本例中使用quotaon –augv命令即可启动用户和群组的quota功能。第一次启动quota时需要使用此命令,以后/etc/rc.d/rc.sysinit脚本会自动执行此命令。edquota:编辑账号/群组的限值与宽限时间

edquota的语法如下:edquota [-u username] [-g groupname]

edquota –t ##修改宽限时间

edquota –p 范本账号–u 新账号

选项与参数:

-u:后面跟账号,进入quota编辑界面(vi)设定用户的限制值;

-g:后面跟组名,设定组的限制值

-t:修改宽限时间-p:复制范本。范本账号设定值会复制给新账号;

比如,设置用户myquota1的限定值如下:[root@localhost /]# edquota -u myquota1

Disk quotas for user myquota1 (uid 503):

Filesystemblocks soft hard inodes soft hard

/dev/sda6123072 100000 1500009 0 0

~

如上图,修改用户myquota1的限定值,只需要修改blocks后面的soft和hard值即可。数值单位为KB,默认数值为0,表示没有限制的意思。

如果其他几个用户限定值一样,可以通过复制范本(myquota1范本)的方式设置:edquota –p myquota1 –u myquota2

edquota –p myquota1 –u myquota3

edquota –p myquota1 –u myquota4

更改群组的限定值和宽限时间:edquota –g myquotagrp

edquota -tQuota限制值的报表

Quota的报表主要有两种模式,一是针对每个用户或群组的quota命令,另外一个是针对整个文件系统的repquota命令。quota:单一用户或群组的quota报表#quota [-uvs] [username]

#quota [-gvs] [groupname]

选项与参数:

-u:加username表示该用户的限制值,不加username表示当前用户限制值

-g:加groupname表示该群组的限制值

-v:显示每个用户在filesystem的限制值-s:使用1024为倍数指定单位,显示M的单位

本例中,用户的限制值显示命令如下:[root@localhost /]# quota -uvs myquota1 myquota2

Disk quotas for user myquota1 (uid 503):

Filesystem blocks quota limit grace files quota limit grace

/dev/sda6 121M* 100000 147M 13days 9 0 0

Disk quotas for user myquota2 (uid 504):

Filesystem blocks quota limit grace files quota limit grace

/dev/sda6 121M* 100000 147M 13days 9 0 0

[root@localhost /]#repquota:针对文件系统的限额做报表#repquota –a [-vugs]

选项与参数:

-a:直接查找/etc/mtab文件中有quota配置的文件系统,并报告结果;

-v:输出更详细的filesystem的相关信息;

-u:显示用户的quota限值(这是默认值);

-g:显示出个别群组的quota限值;-s:以M,G为单位显示结果;测试与管理:测试myquota1用户的限制值设定效果

在myquota1用户下,使用dd命令创建大文件,测试quota配置效果。warnquota:对超过限额者发出警告信

warnquota通过/etc/warnquota.conf配置文件,找出磁盘用量超出soft值的用户,通过emai发送警告信息到用户的邮箱。warnquota默认需要手动执行。如果需要自动执行,可以在/etc/cron.daily目录下创建warnquota文件,添加内容:/usr/sbin/warnquota,并且修改权限:chmod 755 /etc/cron.daily/warnquotasetquota:直接通过命令修改限额(不用vi模式),适用于写入脚本中

用法:setquota [-u|-g] 名称block(soft) block(hard) inode(soft) inode(hard) 文件系统

比如:要设置myquota5用户的限额,命令:setquota -u myquota5 100000 150000 0 0 /home

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。