按大小映射 Linux 文件夹

按大小映射 Linux 文件夹

我有 AWS Linux 实例,目前实例中有许多文件夹。
我想映射所有文件夹及其大小,这样我可以在 1 个月后回来检查哪个文件夹占用了大量存储空间(可能是日志文件夹)。

实现此目的的最佳方法是什么?
这样我就可以更轻松地比较本月和下个月的大小。
谢谢。

答案1

使用ncdu 实用程序。记录数值。一个月后再回来检查 :)

ncdu 1.7 ~ Use the arrow keys to navigate, press ? for help                                                         
--- /ppro ----------------------------------------------------------------------------------------------------------
  170.0GiB [##########] /data                                                                                       
  104.6GiB [######    ] /sldata
   54.4GiB [###       ] /isam
   48.8GiB [##        ] /slisam
   27.8GiB [#         ] /hist
   15.4GiB [          ] /prt
   12.1GiB [          ] /jmail
   10.1GiB [          ] /zephyr2
    9.7GiB [          ] /edi    
    7.9GiB [          ] /savdata2
    6.2GiB [          ] /io      

答案2

我之前保存了另一个问题的这个答案:如何按大小对 du -h 输出进行排序

需要 coreutils 7.5 或更新版本。命令很简单:

du -hs * | sort -h

或者按降序排序,使用:

du -hs * | sort -hr

输出将按大小顺序列出目录,以人类可读的格式(K,M,G)排序

要比较随时间变化的大小,请将输出重定向到文件进行存储:

du -hs * | sort -hr > /path/to/diskusage.txt

答案3

答案是编写一个 bash 脚本。
这是脚本的一部分:
我输出每个邮件文件夹子文件夹的信息,例如:

#!/bin/bash
du -h /etc/* | sort -nr | head -n 20 > /outputdir/data/etc.txt
du -h /usr/* | sort -nr | head -n 20 > /outputdir/data/usr.txt
du -h /var/* | sort -nr | head -n 20 > /outputdir/data/var.txt

加上添加

du -hs /var/ >> /ilantest/data/general.txt
du -hs /usr/ >> /ilantest/data/general.txt
du -hs /etc/ >> /ilantest/data/general.txt

这将为我提供一些关于最常用文件夹的磁盘使用情况的信息,包括显示前 20 个最大的文件夹及其在测试期间的变化。

相关内容