歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> Unix教程

UNIX系統下監視磁盤空間和使用情況

通常,UNIX® 管理員都擁有一套常用的輔助進程管理的實用工具、技巧和系統。本文提供了各種用於簡化各個過程的關鍵實用工具、命令行鏈和腳本。這些工具中的一部分來自於操作系統,而大部分的技巧則來源於長期的經驗積累和減輕系統管理員的工作壓力的要求。本系列文章主要專注於最大限度地利用各種 UNIX 環境中可用的工具,包括簡化異類環境中的管理任務的方法。

入門:使用 df

監視磁盤空間是 UNIX 管理員的工作中很重要的一部分。本文向您介紹一些完成管理工作所需的工具,包括 df、du、find 的使用,甚至配額的使用。讓我們先來看看 df 的強大功能。

對於許多管理員來說,使用 df 工具可能有點像斷續的神經運動,因為它通過一個命令提供了所有文件系統中已使用的和可用的存儲空間的快照視圖。根據您的 UNIX 環境的不同,df 的缺省輸出可能包含各種不同的信息。

大部分現代的 df 變種都可以顯示磁盤空間、使用情況和可用性,通常還包括裝入點(有時包括設備)。例如,基於 BSD 的 Mac OS X 顯示如清單 1 所示的信息。

清單 1. Mac OS X 的缺省磁盤空間信息
 

Filesystem    512-blocks      Used     Avail Capacity  Mounted on
/dev/disk0s2 268435456 119741344 148182112 45% /
devfs 195 195 0 100% /dev
fdesc 2 2 0 100% /dev
<volfs> 1024 1024 0 100% /.vol
清單 2. 使用帶 -k 選項的 df 命令
$ df -k
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/disk0s2 134217728 59870704 74091024 45% /
devfs 97 97 0 100% /dev
fdesc 1 1 0 100% /dev
<volfs> 512 512 0 100% /.vol
/dev/disk0s3 21737260 3625724 18111536 17% /Volumes/Untitled

有些變種可能還支持可選的塊大小,如兆字節(使用 -m)和千兆字節(使用 -g),如清單 3 所示。


清單 3. 使用帶 -g 選項的 df 命令
$ df -g
Filesystem 1G-blocks Used Avail Capacity Mounted on
/dev/disk0s2 128 57 70 45% /
devfs 0 0 0 100% /dev
fdesc 0 0 0 100% /dev
<volfs> 0 0 0 100% /.vol
/dev/disk0s3 20 3 17 17% /Volumes/Untitled

很顯然,在增大顯示的塊大小的同時,信息中的詳細級別也開始降低,但使用可選的大小是一種快速監視磁盤,特別是超大容量磁盤的很有用的方法。其他版本的 df 工具(特別是 Solaris),缺省情況下將報告空塊和文件可用性信息。大部分文件系統都具有能夠存儲文件的上限數值(該數值很大,以至於通常不會達到該上限),所以有可能整個系統填滿了文件,還有可用磁盤容量但卻不能再存儲任何文件了。

您可以在清單 4 中看到 Solaris 的缺省輸出示例。


清單 4. Solaris 的缺省輸出
$ df
/ (/dev/dsk/c0t0d0s0 ):14877208 blocks 914042 files
/devices (/devices ): 0 blocks 0 files
/system/contract (ctfs ): 0 blocks 2147483618 files
/proc (proc ): 0 blocks 16109 files
/etc/mnttab (mnttab ): 0 blocks 0 files
/etc/svc/volatile (swap ): 5737216 blocks 147177 files
/system/object (objfs ): 0 blocks 2147483532 files
/usr (/dev/dsk/c0t0d0s3 ): 9076010 blocks 863695 files
/dev/fd (fd ): 0 blocks 0 files
/var (/dev/dsk/c0t0d0s4 ): 8110796 blocks 483714 files
/tmp (swap ): 5737216 blocks 147177 files
/var/run (swap ): 5737216 blocks 147177 files
/export/home (/dev/dsk/c0t0d0s7 ):69362510 blocks 4272812 files

使用 -k 命令行選項可以將顯示內容切換為與前面的示例類似的格式,其中對數據進行了摘要處理,得到更加便於閱讀的格式(請參見清單 5)。


清單 5. 使用 -k 選項
$ df -k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0t0d0s0 7644629 206026 7362157 3% /
/devices 0 0 0 0% /devices
ctfs 0 0 0 0% /system/contract
proc 0 0 0 0% /proc
mnttab 0 0 0 0% /etc/mnttab
swap 2868600 1016 2867584 1% /etc/svc/volatile
objfs 0 0 0 0% /system/object
/dev/dsk/c0t0d0s3 8261237 3723232 4455393 46% /usr
fd 0 0 0 0% /dev/fd
/dev/dsk/c0t0d0s4 4130238 74849 4014087 2% /var
swap 2867584 0 2867584 0% /tmp
swap 2867624 40 2867584 1% /var/run
/dev/dsk/c0t0d0s7 35611388 930133 34325142 3% /export/home

所有的 df 變種都接受一個目錄或路徑,然後顯示包含該路徑的文件系統的磁盤空間信息。例如,下面顯示了應該如何獲得根文件系統的空間信息:

$ df -k /
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0t0d0s0 7644629 206026 7362157 3% /

或者,下面使用 df 顯示了一個用戶的 home 目錄的空間信息:

$ df -k ~mc
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0t0d0s7 35611388 930133 34325142 3% /export/home

使用 df 的輸出

df 工具實際上是 disk free 的縮寫,並且這也正是該工具所顯示的內容。如果再次查看某個示例輸出,您可以從中提取一些特別重要的元素:

Filesystem             kbytes    used    avail capacity  Mounted on
/dev/dsk/c0t0d0s7 35611388 930133 34325142 3% /export/home


 

第一列通常具有與塊大小數據相對應的標題,它顯示了磁盤的總大小。used 列顯示了該文件系統或設備上已使用的塊數。avail 列顯示了該文件系統上尚未使用的(可用的)塊數。

capacity 列提供了總大小中已使用的磁盤空間所占的百分比。這個信息本身可以提供關於可用空間的直觀指示。

缺省情況下,UNIX 所創建的文件系統中百分之九十的容量可用於存放用戶數據。剩下的百分之十由系統保留,以便 root 用戶執行緊急維護工作。如果用戶試圖添加或創建超出該限制的文件,那麼將返回一個錯誤(超出文件系統空間)。

有了這個緊急維護空間,就可以利用它對一塊已滿的磁盤進行恢復。例如,作為管理員,您可以使用這個空間來創建快速備份,或對現有的數據進行壓縮而無需為達到該目的使用輔助文件系統。您可以使用 tunefs 工具或在創建文件系統時,調整保留的空閒空間的大小。對於大容量磁盤來說,這是至關重要的,因為其中百分之十的緩沖區可能等於許多個 GB 的潛在空間。通常好的做法是至少保留百分之一的空間,以便在完全用盡存儲空間之前,提供最低限度的緩沖區空間。在深入研究這個問題之前,特別是如果已經使用了大量的磁盤空間,您需要確定到底是誰使用了所有的這些空間。

Copyright © Linux教程網 All Rights Reserved