本文介绍使用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 [email protected] ncdu -o- / | ./ncdu -f-
Ncdu扫描选项
这些选项会影响扫描进度,从文件导入目录信息时无效。
-X
不要跨文件系统边界,即只计算与被扫描目录相同的文件系统上的文件和目录。
-exclude PATTERN
排除与PATTERN匹配的文件,默认情况下仍会显示这些文件,但不计入磁盘使用情况统计信息,可以多次添加此参数以添加更多模式。
-X FILE,-exclude-from FILE
排除与FILE中任何模式匹配的文件,模式应该用换行符分隔。
–exclude-caches
排除包含CACHEDIR.TAG的目录,目录仍将显示,但不会显示其内容,并且不计入磁盘使用情况统计信息。
结语
在处理远程服务器和本地桌面系统的磁盘使用情况审计时,使用Ncdu工具将为你节省大量时间。
- 1 玩客云刷armbian架设nginx php mysql 及可道私有云总结
- 2 centos安装好mysql但是无法启动问题(Job for mysqld.service failed because the control process exited with error code.)
- 3 Ubuntu缺少libncurses.so.5的解决办法
- 4 Grafana之Gauge和Bar Gauge使用(第十一篇)
- 5 RHEL 8 安装 Oracle 19c 提示缺少 libnsl.so.1
- 6 df空间占用已满,但du查看home目录空间占用却很少
- 7 vim.fault.GenericVmConfigFault
- 8 linux-kernel – 将设备树中断标志映射到devm_request_irq
- 9 cron: can’t lock /var/run/crond.pid, otherpid may be 2699: Resource temporarily unavailable
- 10 CentOS 7.7 yum方式安装配置Zabbix 4.0 LTS详解(二)
精彩评论