本文介绍一个可视化地查看 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」获取最新最全的技术资料,回复「入群」进入高手如云技术交流群。