**Ncdu – 基于ncurses库的磁盘使用分析器的安装介绍及使用**

前言:离职这段时间,更了解了自己的不足,重新开始写博客激励自己学习!

摘要:Ncdu(NCursesDiskUsage)是一个基于Ncurses库的du命令的界面。它通过大家熟知的du命令,为用户提供一个快速且容易被使用的界面。它可以显示磁盘使用的百分比,且允许你使用ncurses库的方式在目录之间导航。

介绍:在运维工作中,经常会遇到磁盘空间被写满的情况,大部分情况是根分区。这种情况需要尽快处理以免影响系统上其它服务。这时候就需要去定位是哪些文件、目录占用了较大空间,以此判断是哪个服务异常,进而解决问题。在文件系统中找出大文件是一件非常耗时的事情,当 inodes 数很大时尤甚。好在 ncdu 高效地完成了扫描文件系统各文件、目录占用的工作。
[root@XXXX /]# ncdu /
如图统计了根目录下各个文件夹下的占用情况
如图统计了根目录下各个文件夹下的占用情况,在实际应用中可以通过光标进入文件夹下一级
在这里插入图片描述
在图形化界面中可以通过参数d删除文件夹或者文件,省时省力。
在这里插入图片描述
安装Ncdu
(1)Ncdu是一个带有ncurses接口的磁盘使用分析器,所以应当先对ncurses进行安装。在root用户下./configure后make && make install即可,ncurses安装包详见资料参考。
(2)ncdu的版本较多,建议安装最新版本1.13因为新版本支持功能较全,详见资料参考。也是./configure后make && make install即可。
在这里插入图片描述

应用Ncdu
当前最新的Ncdu版本支持导出文本的模式,可以结合脚本语言来自动化定位较大文件夹和文件。省去人工定位的时间,能够最大程度减轻维护人员的在这件事情上的时间消耗。Ncdu输出的文件内容格式是一个list(如下所示),包含了name,asize,ino字段等。分别表示文件名文件实际所占用大小(The apparent file size)和节点号( Inode number)。
如下例:
ncdu / -o test.txt
##将根目录下所有文件夹和文件的使用情况输出到test.txt文件当中
more test.txt |grep “asize”|sed ‘s/"/,/g’|awk -F , ‘{print $4,$8}’|sort -t “:” -k2 -rn|head -n 10
##根据输出的文件中的内容输出文件和文件夹的名称及实际大小前十名的
在这里插入图片描述
如上面例子可知是我没删除的虚拟机tools占了根目录下最大的一部分空间
在这里插入图片描述
这是一个标准Ncdu的输出文件格式
通过crontab定时生成输出文件,这样只需要执行命令对输出文件进行检查即可。当然图形化已经很方便了,脚本语言只适用于特殊场景。

资料参考:
Ncdu man/Download https://dev.yorhel.nl/ncdu
Ncdu介绍文档 https://www.aliyun.com/jiaocheng/180467.html
ncurses Download http://ftp.gnu.org/pub/gnu/ncurses/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值