天天看點

linux中quota資訊檢視,3. quota -v檢視使用者的磁盤空間資訊

linux檢視目錄大小及硬碟大小的指令:

# du -ks ---in all

# du -k ---every last

du和df指令都被用于獲得檔案系統大小的資訊:df用于報告檔案系統的總塊數及剩餘塊數,du -s /用于報告檔案系統使用的塊數。但是,我們可以發現從df指令算出的檔案系統使用塊數的值與通過du指令得出的值是不一緻的。如下例:

# du -s /tmp 傳回如下值:

---12920 /tmp

而 df /tmp傳回如下值:

Filesystem --512-blocks-- Free --%Used --Iused-- %Iused --Mounted on

/dev/hd3 --------57344 --42208--- 26% ----391 ------4% --/tmp

從上面的值我們可以算出 - = : 57344 - 42208 = 15136. 而15136大于12920。該值差異的存在是由于du與df指令實施上的不同: du -s指令通過将指定檔案系統中所有的目錄、符号連結和檔案使用的塊數累加得到該檔案系統使用的總塊數;而df指令通過檢視檔案系統磁盤塊配置設定圖得出總塊數與剩餘塊數。

檔案系統配置設定其中的一些磁盤塊用來記錄它自身的一些資料,如i節點,磁盤分布圖,間接塊,超級塊等。這些資料對大多數使用者級的程式來說是不可見的,通常稱為Meta Data。

du指令是使用者級的程式,它不考慮Meta Data,而df指令則檢視檔案系統的磁盤配置設定圖并考慮Meta Data。df指令獲得真正的檔案系統資料,而du指令隻檢視檔案系統的部分情況。例如,一個frag=4096 并且 nbpi=4096的空的大小為4MB的日志檔案系統中Meta Data的配置設定情況如下:

1 4k block for the LVM

2 4k super blocks

2 4k blocks for disk maps

2 4k blocks for inode maps

2 4k blocks for .indirect

32 4k blocks for inodes

-------------------------

41 4k blocks for meta data on an empty 4MB file system

對于AIX 4.X版本:

執行 du /foo傳回的結果如下:

----8 -------/foo/lost+found

----16 ------/foo

要使du指令輸出的結果與df指令輸出的結果比對,我們必須要加上Meta Data。首先,将41個4k的塊轉換為以512位元組為機關的值:

41 * 8 = 328

328(meta data) + 16(from du) = 344

是以有344個以512位元組為機關的塊配置設定給了這個空的檔案系統。

而使用 df /foo指令我們可以得到下面的結果:

Filesystem --512-blocks --Free --%Used --Iused---%Iused --Mounted on

/dev/lv01 ------8192 -----7848 -----5% -----16 -----2% ----/foo

從中我們可以得到該檔案系統使用的塊數:8192(total blocks) - 7848(free blocks) = 344。該值與上面得出的值一緻。

上面的換算方法對于空的檔案系統很容易實作,但是對于非空的檔案系統,由于Meta Data中檔案間接塊的大小不定,是以較難實作。是以我們不需要檢視du 與 df傳回的值的比對關系,而隻需要了解du -s指令傳回的值反映了配置設定給檔案及目錄的磁盤塊數,而df指令則反映了檔案系統的實際配置設定情況。df指令反映的實際情況包含了使用者資料(檔案及目錄)和Meta Data。

另一個表現出du與df指令不同之處的例子如下:

如果使用者删除了一個正在運作的應用所打開的某個目錄下的檔案,則du指令傳回的值顯示出減去了該檔案後的目錄的大小。但df指令并不顯示減去該檔案後的大小。直到該運作的應用關閉了這個打開的檔案,df傳回的值才顯示出減去了該檔案後的檔案系統的使用情況。

列出一個目錄占用的空間

1. du或du -s或du -k

du -S | sort -n 可以迅速發現那個目錄是最大的。

2. 用df可以看到已安裝的檔案系統的空間大小及剩餘空間大小。

3. quota -v檢視使用者的磁盤空間資訊,如果你用quota限制了使用者空間大小的話。