我有一个网络主机(Linux 主机),其磁盘几乎已满。如何按最大大小列出目录(及其子目录)以找出占用磁盘空间最大的目录?
答案1
从终端:
显示磁盘可用空间(人类可读)
df -h
在 www-root 中显示大小
sudo du -sh /var/www/*
Apache 日志文件
sudo du -sh /var/log/apache2/*
ETC。
这些是我最初的几个猜测(数据库也是如此)。此外,您的应用程序可能也有日志文件,所以请记住这一点。即:
sudo du -sh /var/www/railsapp/current/logs/*
希望这可以帮助!
答案2
我发现一个非常有用的命令行可以找出磁盘中的内容
du -ak | sort -rn | less
这将按磁盘空间使用总量的降序列出当前目录下的所有文件和目录。每行前的数字以千字节为单位。
例如,在/usr
我的 Ubuntu 桌面上运行此命令会产生如下输出:
7586900 .
3291420 ./share
2644256 ./lib
1093752 ./src
830268 ./share/doc
355520 ./bin
314976 ./lib/jvm
276240 ./share/fonts
272296 ./share/icons
247000 ./share/fonts/truetype
245196 ./share/doc/texlive-latex-extra-doc
242688 ./share/doc/texlive-latex-extra-doc/latex
230932 ./lib/openoffice
229560 ./lib/openoffice/basis3.2
例如,从此输出中,我可以注意到我安装了许多 LaTeX 文档,但我并没有真正使用它们。如果我需要释放一些磁盘空间,这似乎是一个不错的起点。
请注意,如果您有大量文件,运行此命令可能需要一段时间。如果您希望保留列表一段时间,最好将其重定向到文件,而不是直接将其传输到less
。