📄 quotas.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="generator" content="HTML Tidy, see www.w3.org" /><title>文件系统配额</title><meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" /><link rel="HOME" title="FreeBSD 使用手册" href="index.html" /><link rel="UP" title="存储" href="disks.html" /><link rel="PREVIOUS" title="File System Snapshots" href="snapshots.html" /><link rel="NEXT" title="加密磁盘分区" href="disks-encrypting.html" /><link rel="STYLESHEET" type="text/css" href="docbook.css" /><meta http-equiv="Content-Type" content="text/html; charset=GB2312" /></head><body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"alink="#0000FF"><div class="NAVHEADER"><table summary="Header navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><th colspan="3" align="center">FreeBSD 使用手册</th></tr><tr><td width="10%" align="left" valign="bottom"><a href="snapshots.html"accesskey="P">后退</a></td><td width="80%" align="center" valign="bottom">章 16. 存储</td><td width="10%" align="right" valign="bottom"><a href="disks-encrypting.html"accesskey="N">前进</a></td></tr></table><hr align="LEFT" width="100%" /></div><div class="SECT1"><h1 class="SECT1"><a id="QUOTAS" name="QUOTAS">16.14. 文件系统配额</a></h1><p>配额是操作系统的一个可选择的属性,它允许限制用户使用的磁盘空间大小或是使用的文件数量。这可以防止某个用户占用所有的磁盘空间。</p><div class="SECT2"><h2 class="SECT2"><a id="AEN25102" name="AEN25102">16.14.1.配置系统来启用磁盘配额</a></h2><p>在决定使用磁盘配额前,确信磁盘配额已经在内核中配置好了。只要在在内核中配置文件中添加下面一行就行了:</p><pre class="PROGRAMLISTING">options QUOTA</pre><p>在默认情况下 <tt class="FILENAME">GENERIC</tt> 内核是不会启用这个功能的,所以必须配置、重建和安装一个定制的内核。请参考 FreeBSD 内核配置 <ahref="kernelconfig.html">µÚ 8 章</a> 这章了解更多有关内核配置的信息。</p><p>接下来,需要在 <tt class="FILENAME">/etc/rc.conf</tt> 中启用磁盘配额。可以通过添加下面这行来完成:</p><pre class="PROGRAMLISTING">enable_quotas="YES"</pre><p>为了更好的控制配额时的启动,还有另外一个可配置的变量。通常启动时,集成在每个文件系统上的配额会被配额检查程序 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">quotacheck</span>(8)</span>自动检查。配额检查功能能够确保在配额数据库中 的数据正确地反映了文件系统的数据情况。这是一个很耗时间的处理进程,它会影响系统的启动时间。如果 想跳过这一步,可以在文件<tt class="FILENAME">/etc/rc.conf</tt> 加入 下面这一行来达到目的:</p><pre class="PROGRAMLISTING">check_quotas="NO"</pre><p>如果运行的是 3.2-RELEASE 以前的版本,配置比较简单,只需要配置 一个选项,在你的 <ttclass="FILENAME">/etc/rc.conf</tt> 中设置下面这行:</p><pre class="PROGRAMLISTING">check_quotas="YES"</pre><p>最后,要编辑 <tt class="FILENAME">/etc/fstab</tt> 文件,以在每一个文件系统基础上雇用磁盘配额。这是启用用户和组配额,或同时启用用户 和组配额的地方。</p><p>要在一个文件系统上启用每个用户的配额,可以在 <tt class="FILENAME">/etc/fstab</tt>里添加 <var class="OPTION">userquota</var> 选项在要雇用配额文件的系统上。例如:</p><pre class="PROGRAMLISTING">/dev/da1s2g /home ufs rw,userquota 1 2</pre><p>同样的,要启用组配额,使用 <var class="OPTION">groupquota</var> 选项来代替 <varclass="OPTION">userquota</var> 选项。要同时启用用户和组配额,可以这样做:</p><pre class="PROGRAMLISTING">/dev/da1s2g /home ufs rw,userquota,groupquota 1 2</pre><p>默认情况下,配额文件是存放在文件系统的以 <tt class="FILENAME">quota.user</tt> 和 <ttclass="FILENAME">quota.group</tt> 命名的根目录下。可以查看 <spanclass="CITEREFENTRY"><span class="REFENTRYTITLE">fstab</span>(5)</span>联机手册了解更多信息。即使联机手册 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">fstab</span>(5)</span> 说中以为配额文件指定其他的位置,这里并不推荐这样做,因为不同的配额工具不一定遵循这样的规则。</p><p>到这儿,可以用新内核重新启动系统。 <tt class="FILENAME">/etc/rc</tt> 将自动运行适当的命令来创建最初的配额文件,所以并不需要手动来创建任何零长度的配额 文件。</p><p>在通常的操作过程中,并不要求手动运行 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">quotacheck</span>(8)</span>、 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">quotaon</span>(8)</span>, 或 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">quotaoff</span>(8)</span> 命令,然而可能需要阅读与他们的操作相似的联机手册。</p></div><div class="SECT2"><h2 class="SECT2"><a id="AEN25155" name="AEN25155">16.14.2. 设置配额限制</a></h2><p>一旦你配置好了启用配额的系统,可以检查一下它们是真的有用。 可以这样做:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">quota -v</kbd></pre><p>你应该能够看到一行当前正在使用的每个文件系统启用的磁盘配额 使用情况的摘要信息。</p><p>现在可以使用 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">edquota</span>(8)</span> 命令准备启用配额限制。</p><p>有几个有关如何强制限制用户或组可以分配到的磁盘空间大小的选项。你可以限制磁盘窨的分配,或文件的数量,或两者都有。这些限制中的每一个最终可分为两类:硬限制和软限制。</p><p>一个硬限制可能无法被超越。一旦一个用户达到了他们的硬限制,他们将无法在文件系统中行到更多的配额。例如,如果用户在文件系统上且个 500 blocks的硬限制,而当前已经分派了490个 blocks ,用户就只能分派 剩下的 10 个 blocks。如果硬是要分派 11 个 blocks 将会失败。</p><p>软限制可以被有时间限制性地被越过。这段时间可以被理解为允许限期,默认是一个星期。如果一个用户延缓时间太长的话,软限制将会变成硬限制,根本就不允许再继续占用磁盘配额。当用户因到软限制以下时,允许延期将 重新开始计算。</p><p>下面是一个运行 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">edquota</span>(8)</span> 时看到的例子。当 <spanclass="CITEREFENTRY"><span class="REFENTRYTITLE">edquota</span>(8)</span>命令被调用时,会被转移进 <tt class="ENVAR">EDITOR</tt> 环境变量指派的编辑器中,允许编辑配额限制。如果环境变量没有设置,默认在 <b class="APPLICATION">vi</b>编辑器上进行。</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">edquota -u test</kbd></pre><pre class="PROGRAMLISTING">Quotas for user test:/usr: blocks in use: 65, limits (soft = 50, hard = 75) inodes in use: 7, limits (soft = 50, hard = 60)/usr/var: blocks in use: 0, limits (soft = 50, hard = 75) inodes in use: 0, limits (soft = 50, hard = 60)</pre><p>在每一个启用了磁盘配额的文件系统上,通常会看到两行。一行是 block 限制,另一行是 inode限制。简单地改变要修改的配额限制的值。 例如,提高这个用户软限制的数值到 500 ,硬限制到600 :</p><pre class="PROGRAMLISTING">/usr: blocks in use: 65, limits (soft = 50, hard = 75)</pre><p>to:</p><pre class="PROGRAMLISTING"> /usr: blocks in use: 65, limits (soft = 500, hard = 600)</pre><p>当离开编辑器的时候,新的配额限制设置将会被保存。</p><p>有时,在 UIDs 的范围上设置配额限制是非常必要的。这可以通过在 <spanclass="CITEREFENTRY"><span class="REFENTRYTITLE">edquota</span>(8)</span> 命令后面加上<var class="OPTION">-p</var> 选项来完成。首先, 给用户分配所需要的配额限制,然后运行命令<tt class="COMMAND">edquota -p protouser startuid-enduid</tt>。例如,如果 用户 <ttclass="USERNAME">test</tt> 已经有了所需要的配额限制,下面的命令 可以被用来复制那些 UIDs为10,000 到 19,999 的配额限制:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">edquota -p test 10000-19999</kbd></pre><p>更多细节请参考 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">edquota</span>(8)</span> 手册页。</p></div><div class="SECT2"><h2 class="SECT2"><a id="AEN25208" name="AEN25208">16.14.3.检查配额限制和磁盘使用</a></h2><p>即可以使用 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">quota</span>(1)</span> 也可以使用 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">repquota</span>(8)</span> 命令来检查 配额限制和磁盘使用情况。 <spanclass="CITEREFENTRY"><span class="REFENTRYTITLE">quota</span>(1)</span>命令能够检查单个用户和组的配置使用情况。只有超级用户才可以检查其它用户的配额和磁盘使用情况。 <spanclass="CITEREFENTRY"><span class="REFENTRYTITLE">repquota</span>(8)</span>命令可以用来了解所有配额和磁盘的使用情况。</p><p>下面是一个使用 <tt class="COMMAND">quota -v</tt> 命令后的输出情况:</p><pre class="PROGRAMLISTING">Disk quotas for user test (uid 1002): Filesystem blocks quota limit grace files quota limit grace /usr 65* 50 75 5days 7 50 60 /usr/var 0 50 75 0 50 60</pre><p>上面的例子表示在 <tt class="FILENAME">/usr</tt> 文件系统中,这个文件系统中,这个用户超越了软限制(50 blocks )15个 blocks ,但是他有5天的宽限期。 注意: <varclass="LITERAL">*</var> 号表示用户当前超过了他的配额限制。</p><p>通常用户没有在上面使用任何磁盘空间的文件系统不会在 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">quota</span>(1)</span>命令的输出中显示,即使他有一个针对文件系统的配置限制。 <var class="OPTION">-v</var>选项将显示那些文件系统,如上一个例子中的 <tt class="FILENAME">/usr/var</tt>文件系统。</p></div><div class="SECT2"><h2 class="SECT2"><a id="AEN25240" name="AEN25240">16.14.4. 通过 NFS使用磁盘配额</a></h2><p>配额能够在 NFS 服务器上被配额子系统强迫使用。在 NFS 客房端, <spanclass="CITEREFENTRY"><span class="REFENTRYTITLE">rpc.rquotad</span>(8)</span>命令可以使用 quota 信息用于 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">quota</span>(1)</span> 命令,可以允许用户察看它们的 quota统计信息。</p><p>可以这样在 <tt class="FILENAME">/etc/inetd.conf</tt> 中启用 <ttclass="COMMAND">rpc.rquotad</tt>:</p><pre class="PROGRAMLISTING">rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad</pre><p>现在重启 <tt class="COMMAND">inetd</tt>:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbdclass="USERINPUT">kill -HUP `cat /var/run/inetd.pid`</kbd></pre></div></div><div class="NAVFOOTER"><hr align="LEFT" width="100%" /><table summary="Footer navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><td width="33%" align="left" valign="top"><a href="snapshots.html"accesskey="P">后退</a></td><td width="34%" align="center" valign="top"><a href="index.html"accesskey="H">起点</a></td><td width="33%" align="right" valign="top"><a href="disks-encrypting.html"accesskey="N">前进</a></td></tr><tr><td width="33%" align="left" valign="top">File System Snapshots</td><td width="34%" align="center" valign="top"><a href="disks.html"accesskey="U">上一级</a></td><td width="33%" align="right" valign="top">加密磁盘分区</td></tr></table></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -