QB杂货铺
底层劳动人民的不解忧杂货铺

工具介绍:ncdu磁盘占用分析

背景

磁盘空间的大小总是跟不上人民日益增长的文件存放需要。

在暂时无法扩容的情况下,就只有删掉一些文件了。

为了快速回收空间,最有效的做法当然是挑大文件下手了。linux下获取文件大小,一般是使用du命令

du -sh

即可看到文件夹占用空间大小。但du本身执行很慢,每次又只针对一个文件夹,在这种场景下反复执行来找出大文件,无疑效率低下。

ncdu 就是解决这个问题的。

安装使用

ubuntu下可以

sudo apt-get install ncdu

如果是需要在没有sudo权限没有网络的服务器上使用,那么一种方式是将本地安装好的bin直接拷贝上去,另一种方式就是把源码拷贝上去编译生成了。

看下帮助,ncdu支持一些参数,包括排除一些文件,导出结果到文件中等。

ncdu -h
ncdu <options> <directory>

  -h                         This help message
  -q                         Quiet mode, refresh interval 2 seconds
  -v                         Print version
  -x                         Same filesystem
  -r                         Read only
  -o FILE                    Export scanned directory to FILE
  -f FILE                    Import scanned directory from FILE
  -0,-1,-2                   UI to use when scanning (0=none,2=full ncurses)
  --si                       Use base 10 (SI) prefixes instead of base 2
  --exclude PATTERN          Exclude files that match PATTERN
  -X, --exclude-from FILE    Exclude files that match any pattern in FILE
  --exclude-caches           Exclude directories containing CACHEDIR.TAG

但最简单的用法就是不带参数,直接在需要分析的目录下执行ncdu, 等待ncdu扫描完毕,就会出现一个交互式的界面。

在这里可以看到每个目录的大小,使用方向键或Enter键即可进入和退出具体的目录。

比如发现某个目录占用空间很大,那么就可以一路跟下去找到罪魁祸首,找到之后确认可以删除的话,不用退出ncdu,直接选中后按d即可。

删除得差不多了,则按q退出

示例

其他

看到另一种使用ncdu的场景是,定期扫描一次并保存到文件中,这样就可以观察到两次扫描之间的文件变化情况了

这个想法很有意思,暂未实践,mark一下
ncdu-diff

本文地址:https://www.cnblogs.com/zqb-all/p/12591744.html
公众号:https://sourl.cn/A7348c

posted @ 2020-03-29 15:37  zqb-all  阅读(1918)  评论(0编辑  收藏  举报