![按大小映射 Linux 文件夹](https://linux22.com/image/604268/%E6%8C%89%E5%A4%A7%E5%B0%8F%E6%98%A0%E5%B0%84%20Linux%20%E6%96%87%E4%BB%B6%E5%A4%B9.png)
我有 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 个最大的文件夹及其在测试期间的变化。