大长弓 發表於 2008-9-8 18:50:14

UNIX系统下监视磁盘空间和使用情况

<p>通常,UNIX&reg; 管理员都拥有一套常用的辅助进程管理的实用工具、技巧和<a target="_blank" href="#" class="UBBWordLink">系统</a>。本文提供了各种用于简化各个过程的关键实用工具、命令行链和脚本。这些工具中的一部分来自于<a target="_blank" href="#" class="UBBWordLink">操作</a><a target="_blank" href="#" class="UBBWordLink">系统</a>,而大部分的技巧则来源于长期的经验积累和减轻<a target="_blank" href="#" class="UBBWordLink">系统</a>管理员的工作压力的要求。本系列文章主要专注于最大限度地利用各种 UNIX 环境中可用的工具,包括简化异类环境中的管理任务的<a target="_blank" href="#" class="UBBWordLink">方法</a>。</p>
<p><span>入门:使用 df</span></p>
<p>监视磁盘空间是 UNIX 管理员的工作中很重要的一部分。本文向您介绍一些完成管理工作所需的工具,包括 df、du、find 的使用,甚至配额的使用。让我们先来看看 df 的强大功能。</p>
<p>对于许多管理员来说,使用 df 工具可能有点像断续的神经运动,因为它通过一个命令提供了所有文件<a target="_blank" href="#" class="UBBWordLink">系统</a>中已使用的和可用的存储空间的快照视图。根据您的 UNIX 环境的不同,df 的缺省输出可能包含各种不同的信息。</p>
<p>大部分现代的 df 变种都可以显示磁盘空间、使用情况和可用性,通常还包括装入点(有时包括设备)。例如,基于 BSD 的 Mac OS X 显示如清单 1 所示的信息。</p>
<p><b>清单 1. Mac OS X 的缺省磁盘空间信息</b><br />
&nbsp;</p>
<p>
<table cellspacing="0" cellpadding="0" width="572" border="0">
    <tbody>
      <tr>
            <td>
            <pre>
Filesystem    512-blocks      Used   Avail CapacityMounted on<br />/dev/disk0s2   268435456 119741344 148182112    45%    /<br />devfs                195       195         0   100%    /dev<br />fdesc                  2         2         0   100%    /dev<br />&lt;volfs&gt;             1024      1024         0   100%    /.vol<br /><b>清单 2. 使用带 -k 选项的 df 命令</b><br /></pre>
            <table cellspacing="0" cellpadding="0" width="572" border="0">
                <tbody>
                  <tr>
                        <td>
                        <pre>
$ df -k<br />Filesystem    1K-blocks      Used   Avail CapacityMounted on<br />/dev/disk0s21342177285987070474091024    45%    /<br />devfs                97      97         0   100%    /dev<br />fdesc               1         1         0   100%    /dev<br />&lt;volfs&gt;             512       512         0   100%    /.vol<br />/dev/disk0s3   21737260   362572418111536    17%    /Volumes/Untitled<br /></pre>
                        </td>
                  </tr>
                </tbody>
            </table>
            <br />
            <p>有些变种可能还支持可选的块大小,如兆字节(使用 <code><font face="新宋体">-m</font></code>)和千兆字节(使用 <code><font face="新宋体">-g</font></code>),如清单 3 所示。</p>
            <br />
            <b>清单 3. 使用带 -g 选项的 df 命令</b><br />
            <table cellspacing="0" cellpadding="0" width="572" border="0">
                <tbody>
                  <tr>
                        <td>
                        <pre>
$ df -g<br />Filesystem    1G-blocks Used Avail CapacityMounted on<br />/dev/disk0s2      128   57    70    45%    /<br />devfs               0    0   0   100%    /dev<br />fdesc               0    0   0   100%    /dev<br />&lt;volfs&gt;               0    0   0   100%    /.vol<br />/dev/disk0s3         20    3    17    17%    /Volumes/Untitled<br /></pre>
                        </td>
                  </tr>
                </tbody>
            </table>
            <br />
            <p>很显然,在增大显示的块大小的同时,信息中的详细级别也开始降低,但使用可选的大小是一种快速监视磁盘,特别是超大容量磁盘的很有用的<a target="_blank" href="#" class="UBBWordLink">方法</a>。其他版本的 df 工具(特别是 Solaris),缺省情况下将报告空块和文件可用性信息。大部分文件<a target="_blank" href="#" class="UBBWordLink">系统</a>都具有能够存储文件的上限数值(该数值很大,以至于通常不会达到该上限),所以有可能整个<a target="_blank" href="#" class="UBBWordLink">系统</a>填满了文件,还有可用磁盘容量但却不能再存储任何文件了。</p>
            <p>您可以在清单 4 中看到 Solaris 的缺省输出示例。</p>
            <br />
            <b>清单 4. Solaris 的缺省输出</b><br />
            <table cellspacing="0" cellpadding="0" width="572" border="0">
                <tbody>
                  <tr>
                        <td>
                        <pre>
$ df<br />/                  (/dev/dsk/c0t0d0s0 ):14877208 blocks   914042 files<br />/devices         (/devices          ):       0 blocks      0 files<br />/system/contract   (ctfs            ):       0 blocks 2147483618 files<br />/proc            (proc            ):       0 blocks    16109 files<br />/etc/mnttab      (mnttab            ):       0 blocks      0 files<br />/etc/svc/volatile(swap            ): 5737216 blocks   147177 files<br />/system/object   (objfs             ):       0 blocks 2147483532 files<br />/usr               (/dev/dsk/c0t0d0s3 ): 9076010 blocks   863695 files<br />/dev/fd            (fd                ):       0 blocks      0 files<br />/var               (/dev/dsk/c0t0d0s4 ): 8110796 blocks   483714 files<br />/tmp               (swap            ): 5737216 blocks   147177 files<br />/var/run         (swap            ): 5737216 blocks   147177 files<br />/export/home       (/dev/dsk/c0t0d0s7 ):69362510 blocks4272812 files<br /></pre>
                        </td>
                  </tr>
                </tbody>
            </table>
            <br />
            <p>使用 <code><font face="新宋体">-k</font></code> 命令行选项可以将显示内容切换为与前面的示例类似的格式,其中对数据进行了摘要处理,得到更加便于阅读的格式(请参见清单 5)。</p>
            <br />
            <b>清单 5. 使用 -k 选项</b><br />
            <table cellspacing="0" cellpadding="0" width="572" border="0">
                <tbody>
                  <tr>
                        <td>
                        <pre>
$ df -k<br />Filesystem            kbytes    used   avail capacityMounted on<br />/dev/dsk/c0t0d0s0    7644629206026 7362157   3%    /<br />/devices                   0       0       0   0%    /devices<br />ctfs                     0       0       0   0%    /system/contract<br />proc                     0       0       0   0%    /proc<br />mnttab                     0       0       0   0%    /etc/mnttab<br />swap               2868600    1016 2867584   1%    /etc/svc/volatile<br />objfs                      0       0       0   0%    /system/object<br />/dev/dsk/c0t0d0s3    8261237 3723232 4455393    46%    /usr<br />fd                         0       0       0   0%    /dev/fd<br />/dev/dsk/c0t0d0s4    4130238   74849 4014087   2%    /var<br />swap               2867584       0 2867584   0%    /tmp<br />swap               2867624      40 2867584   1%    /var/run<br />/dev/dsk/c0t0d0s7    35611388930133 34325142   3%    /export/home<br /></pre>
                        </td>
                  </tr>
                </tbody>
            </table>
            <br />
            <p>所有的 df 变种都接受一个目录或路径,然后显示包含该路径的文件<a target="_blank" href="#" class="UBBWordLink">系统</a>的磁盘空间信息。例如,下面显示了应该如何获得根文件<a target="_blank" href="#" class="UBBWordLink">系统</a>的空间信息:</p>
            <table cellspacing="0" cellpadding="0" width="572" border="0">
                <tbody>
                  <tr>
                        <td>
                        <pre>
$ df -k /<br />Filesystem            kbytes    used   avail capacityMounted on<br />/dev/dsk/c0t0d0s0    7644629206026 7362157   3%    /<br /></pre>
                        </td>
                  </tr>
                </tbody>
            </table>
            <br />
            <p>或者,下面使用 df 显示了一个用户的 home 目录的空间信息:</p>
            <table cellspacing="0" cellpadding="0" width="572" border="0">
                <tbody>
                  <tr>
                        <td>
                        <pre>
$ df -k ~mc<br />Filesystem             kbytes    used    avail capacityMounted on<br />/dev/dsk/c0t0d0s7    35611388930133 34325142   3%    /export/home<br /></pre>
                        </td>
                  </tr>
                </tbody>
            </table>
            </td>
      </tr>
    </tbody>
</table>
</p>
<p><span>使用 df 的输出</span></p>
<p>df 工具实际上是 <i>disk free</i> 的缩写,并且这也正是该工具所显示的内容。如果再次查看某个示例输出,您可以从中提取一些特别重要的元素:</p>
<table cellspacing="0" cellpadding="0" width="572" border="0">
    <tbody>
      <tr>
            <td>
            <pre>
Filesystem             kbytes    used    avail capacityMounted on<br />/dev/dsk/c0t0d0s7    35611388930133 34325142   3%    /export/home<br /></pre>
            </td>
      </tr>
    </tbody>
</table>
<p><br />
&nbsp;</p>
<p>第一列通常具有与块大小数据相对应的标题,它显示了磁盘的总大小。<i>used</i> 列显示了该文件<a target="_blank" href="#" class="UBBWordLink">系统</a>或设备上已使用的块数。<i>avail</i> 列显示了该文件<a target="_blank" href="#" class="UBBWordLink">系统</a>上尚未使用的(可用的)块数。</p>
<p><i>capacity</i> 列提供了总大小中已使用的磁盘空间所占的百分比。这个信息本身可以提供关于可用空间的直观指示。</p>
<p>缺省情况下,UNIX 所创建的文件<a target="_blank" href="#" class="UBBWordLink">系统</a>中百分之九十的容量可用于存放用户数据。剩下的百分之十由<a target="_blank" href="#" class="UBBWordLink">系统</a>保留,以便 root 用户执行紧急维护工作。如果用户试图添加或创建超出该限制的文件,那么将返回一个错误(超出文件<a target="_blank" href="#" class="UBBWordLink">系统</a>空间)。</p>
<p>有了这个紧急维护空间,就可以利用它对一块已满的磁盘进行恢复。例如,作为管理员,您可以使用这个空间来创建快速备份,或对现有的数据进行压缩而无需为达到该目的使用辅助文件<a target="_blank" href="#" class="UBBWordLink">系统</a>。您可以使用 tunefs 工具或在创建文件<a target="_blank" href="#" class="UBBWordLink">系统</a>时,调整保留的空闲空间的大小。对于大容量磁盘来说,这是至关重要的,因为其中百分之十的缓冲区可能等于许多个 GB 的潜在空间。通常好的做法是至少保留百分之一的空间,以便在完全用尽存储空间之前,提供最低限度的缓冲区空间。在深入研究这个问题之前,特别是如果已经使用了大量的磁盘空间,您需要确定到底是谁使用了所有的这些空间。</p>
                                             
                       
                                                <div class="cupage"><a href='#'>上一页</a><strong>1</strong><a href='https://www.jb51.net/os/Unix/1563_2.html'>2</a> <a href='https://www.jb51.net/os/Unix/1563_3.html'>3</a> <a href='https://www.jb51.net/os/Unix/1563_4.html'>4</a> <a href='https://www.jb51.net/os/Unix/1563_2.html'>下一页</a> <a href='https://www.jb51.net/os/Unix/1563_all.html'>阅读全文</a></div>
頁: [1]
查看完整版本: UNIX系统下监视磁盘空间和使用情况