• 工具介绍: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

  • 相关阅读:
    Windows 平台下的Mysql集群主从复制
    IOS 的loadView 及使用loadView中初始化View注意的问题。(死循环并不可怕)
    【2013625】K2+SAP集成应用解决方案在线研讨会
    to_char 和 to_date 经验分享
    Java向Access插入数据
    spring Bean的生命周期管理
    [置顶] 30分钟,让你成为一个更好的程序员
    Spring框架中Bean的生命周期
    Box2D的相关知识
    第八周项目二
  • 原文地址:https://www.cnblogs.com/zqb-all/p/12591744.html
Copyright © 2020-2023  润新知