本文介紹一個可視化地查看 Linux 系統磁盤使用狀況的工具——Duc。git
Duc 是一個工具集,能夠在類 Unix 操做系統上創建索引、檢查和可視化系統的磁盤。與其它類似工具相比,它能夠正常工做在超大規模的文件系統上。測試代表,Duc 能夠毫無問題地工做在 500,000,000 個文件,總大小有幾個 PB 的磁盤上。github
Duc 是一個很是快速及便捷的工具,它將你的磁盤使用狀況經優化後保存在數據庫裏。因此,在索引創建以後,你能夠很快速地找到你的文件。數據庫
此外,它有不少種用戶界面,並支持多種數據庫格式。它所支持的用戶界面有以下:bash
命令行界面;工具
Ncurses 終端界面;測試
X11 GUI優化
OpenGL GUIui
支持的數據庫格式有以下:spa
Tokyocabinet,操作系統
Leveldb,
Sqlite3.
默認狀況下,Duc 使用 Tokyocabinet 做爲數據庫。
對於 Debian 系及它的衍生系統,安裝很是方便,以下:
$ sudo apt-get install duc複製代碼
對於其它系統,可使用源碼安裝。首先能夠下載它的源碼:
$ wget https://github.com/zevv/duc/releases/download/1.4.4/duc-1.4.4.tar.gz複製代碼
而後再使用如下命令去編譯並完成安裝:
$ tar -xzf duc-1.4.4.tar.gz
$ cd duc-1.4.4
$ ./configure
$ make
$ sudo make install複製代碼
Duc 工具使用的通常方法以下:
$ duc <subcommand> <options>複製代碼
你可使用下列命令來查看 Duc 的常規選項及子命令列表:
$ duc help複製代碼
你也可使用下列命令來查看 Duc 的某個特定子命令:
$ duc help <subcommand>複製代碼
要查看全部命令及其選項的詳盡列表,只需運行:
$ duc help --all複製代碼
接下來,咱們具體來看 Duc 工具的使用方法。
1. 建立數據庫索引
在最開始的時候,咱們要爲咱們的磁盤文件系統建立一個索引。建立的過程很簡單,只需運行 duc index
命令便可。
好比,若是要爲 /home 目錄建立索引,只需運行:
$ duc index /home複製代碼
以上命令將爲你的 /home 目錄建立索引,並將索引保存在 $HOME/.duc.db 文件裏。若是你在該目錄下又建立了新文件,那麼只需再次運行上述命令便可從新建立新的索引。
2. 查詢數據庫索引
Duc 有多種子命令用來查詢及瀏覽索引。若是須要查詢可用索引列表,須要運行:
$ duc info複製代碼
運行結果以下:
Date Time Files Dirs Size Path
2019-04-09 15:45:55 3.5K 305 654.6M /home複製代碼
正如你所看到的結果,我已經爲 /home 目錄創建了索引。若是想要列出當前工做目錄下全部的文件及目錄,你能夠運行:
$ duc ls複製代碼
若是須要列出特定目錄下的文件及目錄,如:/home/alvin/Downloads ,只需將路徑傳遞給上述命令便可:
$ duc ls /home/alvin/Downloads複製代碼
若是須要知道某個特定子命令的使用方法,可使用它的參考文檔。好比你想知道 ls
子命令的使用方法,能夠這樣執行:
$ duc help ls複製代碼
3. 可視化磁盤使用狀況
在以上部分,咱們已經知道了如何用 duc 命令來列出文件及目錄。可是,這樣並不直觀。咱們還可使用圖表來顯示文件的尺寸。
若是咱們想要用圖表的方式來顯示一個給定的目錄,能夠以下使用 ls
子命令:
$ duc ls -Fg /home/alvin複製代碼
輸出結果以下:
在這個結果裏,ls
子命令查詢並列出了指定目錄裏全部的文件及目錄,並用圖表的方式顯示出來。
這裏,-F 選項用於將文件類型指示符(one of */)附加到條目,-g 選項用於繪製每一個條目的相對大小的圖形。
若是不指定目錄的話,那麼默認將是當前目錄的使用狀況。
你還可使用 -R 選項來以樹狀的形式來查看磁盤使用狀況:
$ duc ls -R /home/alvin複製代碼
相似地,你能夠運行 duc ui
命令來打開一個 ncurses 終端來瀏覽你的文件:
$ duc ui /home/alvin複製代碼
相似地,也能夠運行 duc gui
來打開一個 graphical (X11) 來查看你的文件系統:
$ duc gui /home/alvin複製代碼
以上是 Duc 工具的很基本的用法,想要知道它的更多強大功能,能夠查看它的幫助文檔:
$ man duc複製代碼
碼字不易,若是您以爲有幫助,麻煩點個贊再走唄~
-----------------
我是良許,世界500強外企 Linux 開發工程師,專業生產 Linux 乾貨。歡迎關注個人公衆號「良許Linux」,回覆「1024」獲取最新最全的技術資料,回覆「入羣」進入高手如雲技術交流羣。