运维开发网

使用ncdu来分析Linux系统中的磁盘使用情况

运维开发网 https://www.qedev.com 2021-01-15 14:18 出处:云网牛站 作者:叶云
本文介绍使用ncdu来分析Linux系统中的磁盘使用情况,它是一个带有ncurses接口的磁盘使用分析器。Ncdu简单且易于使用,并且能够在安装了ncurses的任何最小POSIX环境中运行,默认情况下,

本文介绍使用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来分析Linux系统中的磁盘使用情况

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 >

使用ncdu来分析Linux系统中的磁盘使用情况

示例2:Show percentage and/or graph using g

使用ncdu来分析Linux系统中的磁盘使用情况

示例3:Delete file using d

使用ncdu来分析Linux系统中的磁盘使用情况

示例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工具将为你节省大量时间。

 

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号