📄 ch-disk-quotas.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><HTML><HEAD><TITLE>实现磁盘配额</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="Red Hat Linux 9"HREF="index.html"><LINKREL="UP"TITLE="文件系统"HREF="part-filesystems.html"><LINKREL="PREVIOUS"TITLE="重新划分分区大小"HREF="s1-parted-resize-part.html"><LINKREL="NEXT"TITLE="管理磁盘配额"HREF="s1-disk-quotas-managing.html"><LINKREL="STYLESHEET"TYPE="text/css"HREF="rhdocs-man.css"><METAHTTP-EQUIV="Content-Type"CONTENT="text/html; charset=gb2312"></HEAD><BODYCLASS="CHAPTER"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">Red Hat Linux 9: Red Hat Linux 定制指南</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="s1-parted-resize-part.html"ACCESSKEY="P">后退</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom"></TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="s1-disk-quotas-managing.html"ACCESSKEY="N">前进</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="CHAPTER"><H1><ANAME="CH-DISK-QUOTAS"></A>6. 实现磁盘配额</H1><P>除了监视系统上使用的磁盘空间(请参阅<AHREF="s1-sysinfo-filesystems.html#S2-SYSINFO-FILESYSTEMS-MONITORING">第 26.3.1 节</A>),你还可以通过实现磁盘配额来限制磁盘空间,因此当用户使用了过多的磁盘空间或分区将要充满时,系统管理员就会接到警告。 </P><P>磁盘配额可以为个体用户配置也可以为用户组配置。这种灵活性既能够给每个用户分配一个较小的配额来处理“个人”文件(如电子邮件和报告),又允许了他们正从事的项目能够拥有较大的配额(假定项目有自己的组群)。 </P><P> 除此以外,配额不仅能够被设置成对所用磁盘块数量的控制,还能够被设置成对内节点数量的控制。由于内节点包含文件相关的信息,对内节点的控制能够控制可被创建的文件数量。 </P><P> 要实现磁盘配额,<TTCLASS="COMMAND">quota</TT> RPM 必须在系统上被安装。关于安装 RPM 软件包的详情,请参阅<AHREF="part-pkg-management.html">第 V 部分</A>。 </P><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="S1-DISK-QUOTAS-CONFIGURING"></A>6.1. 配置磁盘配额</H1><P> 要实现磁盘配额,请使用以下步骤: </P><P></P><OLTYPE="1"><LI><P>修改 <TTCLASS="FILENAME">/etc/fstab</TT>来启用每个文件系统的配额</P></LI><LI><P>重新挂载文件系统</P></LI><LI><P>创建配额文件,重新生成磁盘用量表</P></LI><LI><P>分配配额</P></LI></OL><P> 以上步骤在下面各节中被详细讨论。 </P><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-DISK-QUOTAS-ENABLING"></A>6.1.1. 启用配额</H2><P>以根用户身份使用你喜欢的编辑器来给需要配额的文件系统添加 <TTCLASS="COMMAND">usrquota</TT> 和(或)<TTCLASS="COMMAND">grpquota</TT> 选项:</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">LABEL=/ / ext3 defaults 1 1LABEL=/boot /boot ext3 defaults 1 2none /dev/pts devpts gid=5,mode=620 0 0LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2none /proc proc defaults 0 0none /dev/shm tmpfs defaults 0 0/dev/hda2 swap swap defaults 0 0/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0</TT></PRE></TD></TR></TABLE><P> 在上面的例子中,<TTCLASS="FILENAME">/home</TT> 文件系统上启用了用户和组群配额。 </P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-DISK-QUOTAS-REMOUNTING"></A>6.1.2. 重新挂载文件系统</H2><P> 添加了 <TTCLASS="COMMAND">userquota</TT> 和 <TTCLASS="COMMAND">grpquota</TT> 选项后,重新挂载每个相应 <TTCLASS="FILENAME">fstab</TT> 条目被修改的文件系统。如果某文件系统没有被任何进程使用,使用 <TTCLASS="COMMAND">umount</TT> 命令后再紧跟着 <TTCLASS="COMMAND">mount</TT> 命令来重新挂载这个文件系统。如果某文件系统正在被使用,要重新挂载该文件系统的最简捷方法是重新引导系统。 </P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-DISK-QUOTAS-CREATE-FILES"></A>6.1.3. 创建配额文件</H2><P> 重新挂载了每个启用了配额的文件系统后,系统现在就能够使用磁盘配额了。不过,文件系统本身尚且不能支持配额。下一步是运行 <TTCLASS="COMMAND">quotacheck</TT> 命令。 </P><P> <TTCLASS="COMMAND">quotacheck</TT> 命令检查启用了配额的文件系统,并为每个文件系统建立一个当前磁盘用来的表。该表会被用来更新操作系统的磁盘用量文件。此外,文件系统的磁盘配额文件也被更新。 </P><P>要在文件系统上创建配额文件(<TTCLASS="FILENAME">aquota.user</TT> 和 <TTCLASS="FILENAME">aquota.group</TT>),使用 <TTCLASS="COMMAND">quotacheck</TT> 命令的 <TTCLASS="OPTION">-c</TT> 选项。例如,如果用户和组群配额都为 <TTCLASS="FILENAME">/home</TT> 分区启用了,在 <TTCLASS="FILENAME">/home</TT> 目录下创建这些文件: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">quotacheck -acug /home</TT></PRE></TD></TR></TABLE><P> <TTCLASS="OPTION">-a</TT> 选项意味着在 <TTCLASS="FILENAME">/etc/mtab</TT> 中所有挂载了的非 NFS 文件系统都会被检查来决定是否启用了配额。<TTCLASS="OPTION">-c</TT> 选项指定每个启用了配额的文件系统都应该创建配额文件,<TTCLASS="OPTION">-u</TT> 选项指定检查用户配额,<TTCLASS="OPTION">-g</TT> 选项指定检查组群配额。 </P><P> 如果 <TTCLASS="OPTION">-u</TT> 或 <TTCLASS="OPTION">-g</TT> 选项被指定,只有用户配额文件被创建。如果只指定了 <TTCLASS="OPTION">-g</TT> 选项,只有组群配额文件会被创建。 </P><P> 文件被创建后,运行以下命令来生成每个启用了配额的文件系统的当前磁盘用量表: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">quotacheck -avug</TT></PRE></TD></TR></TABLE><P> 所用选项如下: </P><P></P><UL><LI><P><TTCLASS="OPTION">a</TT> — 检查所有启用了配额的在本地挂载的文件系统</P></LI><LI><P><TTCLASS="OPTION">v</TT> — 在检查配额过程中显示详细的状态信息</P></LI><LI><P><TTCLASS="OPTION">u</TT> — 检查用户磁盘配额信息 </P></LI><LI><P><TTCLASS="OPTION">g</TT> — 检查组群磁盘配额信息 </P></LI></UL><P> <TTCLASS="COMMAND">quotacheck</TT> 运行完毕后,和启用配额(用户和/或组群)相应的配额文件中就会写入用于每个启用了配额的文件系统(如 <TTCLASS="FILENAME">/home</TT>)的数据。 </P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-DISK-QUOTAS-ASSIGNING-USER"></A>6.1.4. 为每用户分配配额</H2><P> 最后一步是使用 <TTCLASS="COMMAND">edquota</TT> 命令分配磁盘配额。 </P><P> 要为用户配置配额,以根用户身份在 shell 提示下执行以下命令: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">edquota <TTCLASS="REPLACEABLE"><I>username</I></TT></TT></PRE></TD></TR></TABLE><P> 为每个你想实现配额的用户执行该步骤。例如,如果在 <TTCLASS="FILENAME">/etc/fstab</TT> 中为 <TTCLASS="FILENAME">/home</TT> 分区(<TTCLASS="FILENAME">/dev/hda3</TT>)启用了配额,执行了 <TTCLASS="COMMAND">edquota testuser</TT> 命令后,系统默认的编辑器中就会有如下显示: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">Disk quotas for user testuser (uid 501): Filesystem blocks soft hard inodes soft hard /dev/hda3 440436 0 0 37418 0 0</TT></PRE></TD></TR></TABLE><DIVCLASS="NOTE"><P></P><TABLECLASS="NOTE"WIDTH="100%"BORDER="0"><TR><TDWIDTH="25"ALIGN="CENTER"VALIGN="TOP"><IMGSRC="./stylesheet-images/note.png"HSPACE="5"ALT="注记"></TD><THALIGN="LEFT"VALIGN="CENTER"><B>注记</B></TH></TR><TR><TD> </TD><TDALIGN="LEFT"VALIGN="TOP"><P> <TTCLASS="COMMAND">edquota</TT> 使用 <TTCLASS="ENVAR">EDITOR</TT> 环境变量所定义的文本编辑器。要改变这个编辑器,把 <TTCLASS="ENVAR">EDITOR</TT> 环境变量设置为到你选中的编辑器的完整路径。 </P></TD></TR></TABLE></DIV><P> 第一列是启用了配额的文件系统的名称。第二列显示了用户当前使用的块数。随后的两列用来设置用户在该文件系统上的软硬块限度。<TTCLASS="COMPUTEROUTPUT">inodes</TT> 列显示了用户当前使用的内节点数量。最后两列用来设置用户在该文件系统上的软硬内节点限度。 </P><P> 硬限是用户或组群可以使用的磁盘空间的绝对最大值。达到了该限度后,磁盘空间就不能再被用户或组群使用了。 </P><P> 软限定义可被使用的最大磁盘空间量。和硬限不同的是,软限可以在一段时期内被超过。这段时期被称为 <ICLASS="FIRSTTERM">过渡期(grace period)</I>。过渡期可以用秒钟、分钟、小时、天数、周数、或月数表示。 </P><P> 如果以上值中的任何一个被设置为 0,那个限度就不会被设置。在文本编辑器中,改变想要的限度。如:, </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">Disk quotas for user testuser (uid 501): Filesystem blocks soft hard inodes soft hard /dev/hda3 440436 500000 550000 37418 0 0</TT></PRE></TD></TR></TABLE><P> 要校验用户的配额是否被设置,使用以下命令: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">quota testuser</TT></PRE></TD></TR></TABLE></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-DISK-QUOTAS-ASSIGNING-GROUP"></A>6.1.5. 为每组群分配配额</H2><P> 配额还可以根据组群来分配。例如,要为 <TTCLASS="COMPUTEROUTPUT">devel</TT> 组群设置组群配额,使用以下命令(在设置组群配额前,该组群必须存在): </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">edquota -g devel</TT></PRE></TD></TR></TABLE><P> 以上命令在文本编辑器中显示现存的组群配额: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">Disk quotas for group devel (gid 505): Filesystem blocks soft hard inodes soft hard /dev/hda3 440400 0 0 37418 0 0</TT></PRE></TD></TR></TABLE><P> 修改限度,保存文件,然后配置配额。 </P><P> 要校验组群配额是否被设置,使用以下命令: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">quota -g devel</TT></PRE></TD></TR></TABLE></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-DISK-QUOTAS-ASSIGNING-FILE-SYSTEM"></A>6.1.6. 为每文件系统分配配额</H2><P> 要根据每个启用了组群的文件系统来分配配额,使用以下命令: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">edquota -t</TT></PRE></TD></TR></TABLE><P> 和另一个 <TTCLASS="COMMAND">edquota</TT> 命令相似,这个命令也会在文本编辑器中打开当前的文件系统配额: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">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/hda3 7days 7days</TT></PRE></TD></TR></TABLE><P> 改变块过渡期或内节点过渡期,保存对文件的改变,然后退出文本编辑器。 </P></DIV></DIV></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="s1-parted-resize-part.html"ACCESSKEY="P">后退</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="index.html"ACCESSKEY="H">起点</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="s1-disk-quotas-managing.html"ACCESSKEY="N">前进</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">重新划分分区大小</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="part-filesystems.html"ACCESSKEY="U">上级</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">管理磁盘配额</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -