1. 程式人生 > >**Ncdu – 基於ncurses庫的磁碟使用分析器的安裝介紹及使用**

**Ncdu – 基於ncurses庫的磁碟使用分析器的安裝介紹及使用**

前言:離職這段時間,更瞭解了自己的不足,重新開始寫部落格激勵自己學習!

摘要:Ncdu(NCursesDiskUsage)是一個基於Ncurses庫的du命令的介面。它通過大家熟知的du命令,為使用者提供一個快速且容易被使用的介面。它可以顯示磁碟使用的百分比,且允許你使用ncurses庫的方式在目錄之間導航。

介紹:在運維工作中,經常會遇到磁碟空間被寫滿的情況,大部分情況是根分割槽。這種情況需要儘快處理以免影響系統上其它服務。這時候就需要去定位是哪些檔案、目錄佔用了較大空間,以此判斷是哪個服務異常,進而解決問題。在檔案系統中找出大檔案是一件非常耗時的事情,當 inodes 數很大時尤甚。好在 ncdu 高效地完成了掃描檔案系統各檔案、目錄佔用的工作。 [

[email protected] /]# ncdu / 如圖統計了根目錄下各個資料夾下的佔用情況 如圖統計了根目錄下各個資料夾下的佔用情況,在實際應用中可以通過游標進入資料夾下一級 在這裡插入圖片描述 在圖形化介面中可以通過引數d刪除資料夾或者檔案,省時省力。 在這裡插入圖片描述 安裝Ncdu (1)Ncdu是一個帶有ncurses介面的磁碟使用分析器,所以應當先對ncurses進行安裝。在root使用者下./configure後make && make install即可,ncurses安裝包詳見資料參考。 (2)ncdu的版本較多,建議安裝最新版本1.13因為新版本支援功能較全,詳見資料參考。也是./configure後make && make install即可。 在這裡插入圖片描述

應用Ncdu 當前最新的Ncdu版本支援匯出文字的模式,可以結合指令碼語言來自動化定位較大資料夾和檔案。省去人工定位的時間,能夠最大程度減輕維護人員的在這件事情上的時間消耗。Ncdu輸出的檔案內容格式是一個list(如下所示),包含了name,asize,ino欄位等。分別表示檔名檔案實際所佔用大小(The apparent file size)和節點號( Inode number)。 如下例: ncdu / -o test.txt ##將根目錄下所有資料夾和檔案的使用情況輸出到test.txt檔案當中 more test.txt |grep “asize”|sed ‘s/"/,/g’|awk -F , ‘{print $4,$8}’|sort -t “:” -k2 -rn|head -n 10 ##根據輸出的檔案中的內容輸出檔案和資料夾的名稱及實際大小前十名的 在這裡插入圖片描述

如上面例子可知是我沒刪除的虛擬機器tools佔了根目錄下最大的一部分空間 在這裡插入圖片描述 這是一個標準Ncdu的輸出檔案格式 通過crontab定時生成輸出檔案,這樣只需要執行命令對輸出檔案進行檢查即可。當然圖形化已經很方便了,指令碼語言只適用於特殊場景。