本文介绍使用ncdu来分析Linux系统中的磁盘使用情况,它是一个带有ncurses接口的磁盘使用分析器。Ncdu简单且易于使用,并且能够在安装了ncurses的任何最小POSIX环境中运行,默认情况下,它将显示从大到小排序的文件/目录磁盘使用情况。
背景 大多数Linux系统管理员习惯于使用du命令检查消耗更多磁盘空间的文件或查找实际文件大小,比如我总是运行下面的命令来查找指定目录中的文件并按大小排序-从最大到最小: $ find /dir -type f -exec du -Sh {} + | sort -rh 你可以通过将输出结果连接到头来进一步限制输出结果: $ find /dir -type f -exec du -Sh {} + | sort -rh | head -n 10 这将只打印前10个文件。 或者仅使用du命令: $ du -sh /dir/* | sort -hr 同时可以先参考使用ncdu、tin-summer、dust、diskus、duu来替代du命令工作一文。
在Linux中安装Ncdu Ncdu包可用于来自上游存储库的大多数Linux发行版,让我们看看如何在CentOS,Debian系列发行版和Arch Linux上安装ncdu软件包。 1、Arch Linux上安装Ncdu 使用命令: $ sudo pacman -S ncdu resolving dependencies... looking for conflicting packages... Packages (1) ncdu-1.13-1 Total Installed Size: 0.11 MiB :: Proceed with installation? [Y/n] y (1/1) checking keys in keyring [################] 100% (1/1) checking package integrity [################] 100% (1/1) loading package files [################] 100% (1/1) checking for file conflicts [################] 100% (1/1) checking available disk space [################] 100% :: Processing package changes... (1/1) installing ncdu [################] 100% :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... 2、在Ubuntu/Debian上安装Ncdu 在Ubuntu和所有其他Debian系列发行版上,使用apt包管理器安装ncdu: $ sudo apt-get install ncdu 3、在CentOS/Fedora上安装Ncdu 在CentOS和Fedora上,该软件包可从EPEL存储库获得,先添加它然后使用yum安装ncdu: $ sudo yum install epel-release $ sudo yum provides ncdu Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: centosmirror.netcup.net * epel: mirror.imt-systems.com * extras: mirror.netcologne.de * updates: mirror.softaculous.com ncdu-1.13-1.el7.x86_64 : Text-based disk usage viewer Repo : epel $ sudo yum install ncdu $ sudo dnf install ncdu # For Fedora
使用Ncdu审核磁盘使用情况 在你的操作系统上安装软件包后,只需运行: $ ncdu /dir/
Ncdu还提供了许多操作文件和文件夹的选项-导航,排序甚至删除: up,k - 用于向上移动光标 down,j - 用于向下移动光标 右键,输入,l> - 打开所选目录 left,<,h - 这将打开父目录 n - 按名称排序(再次按降序排列) s - 按文件大小排序(再次按降序排列) d - 删除所选文件或目录 g - 显示百分比和/或图表 t - 排序时在文件之前切换dirs c - 切换子项目计数的显示 b - 当前目录中的Spawn shell i - 显示有关所选项目的信息 r - 刷新/重新计算当前目录 q - 退出ncdu 可以到ncdu:基于ncurses库的磁盘使用分析器一文中参考。 示例1:Navigate using >
示例2:Show percentage and/or graph using g
示例3:Delete file using d
示例4:扫描完整的文件系统 # ncdu -x / 由于扫描大型目录可能需要一段时间,因此你可以扫描目录并导出结果以供以后查看: # ncdu -1xo- / | gzip >export.gz # ...some time later: # zcat export.gz | ncdu -f- 你还可以导出目录并在扫描完成后浏览它: # ncdu -o- | tee export.file | ./ncdu -f- 使用gzip压缩也是可以的,但有点笨拙: # ncdu -o- | gzip | tee export.gz | gunzip | ./ncdu -f- 要远程扫描系统,但在本地浏览文件: # ssh -C user@system ncdu -o- / | ./ncdu -f-
Ncdu扫描选项 这些选项会影响扫描进度,从文件导入目录信息时无效。 -X 不要跨文件系统边界,即只计算与被扫描目录相同的文件系统上的文件和目录。 -exclude PATTERN 排除与PATTERN匹配的文件,默认情况下仍会显示这些文件,但不计入磁盘使用情况统计信息,可以多次添加此参数以添加更多模式。 -X FILE,-exclude-from FILE 排除与FILE中任何模式匹配的文件,模式应该用换行符分隔。 –exclude-caches 排除包含CACHEDIR.TAG的目录,目录仍将显示,但不会显示其内容,并且不计入磁盘使用情况统计信息。
结语 在处理远程服务器和本地桌面系统的磁盘使用情况审计时,使用Ncdu工具将为你节省大量时间。
相关主题 |