作为系统维护人员,你肯定遇到过硬盘被占满的情况。日志文件往往是占用大量磁盘空间的”罪魁祸首”,但要找出这些”隐形”的大块头并非易事。本文介绍几个高效的命令和工具,帮助你快速定位并管理这些占用空间的大文件。
用 du 查看磁盘使用情况
du(disk usage,磁盘使用情况)命令是查找大文件和目录的基本工具。-h 参数让输出结果以易读的格式显示(如 K、M、G),-a 参数则显示所有文件和目录而不只是子目录汇总。
du -ah 要找的目录 | sort -rh | head -n 10
这条命令会把指定目录下所有文件和目录按大小从大到小排序,只显示最大的前 10 个:
du -ah:列出所有文件和目录的大小;sort -rh:按”人类可读”的数值倒序排序;head -n 10:只取前 10 行。
用 find 查找特定大小的文件
find 命令可以帮助你查找特定大小以上的文件:
find 要查找的目录 -type f -size +20M -print0 | xargs -0 du -h | sort -nr
这个命令会找出所有超过 20MB 的文件:
-type f:只匹配普通文件;-size +20M:只匹配大于 20MB 的文件;-print0配合xargs -0:用空字符\0作为分隔符传递文件名,这样即使文件名里含有空格等特殊字符也不会出错;du -h | sort -nr:统计各文件大小并按数值倒序排列。
用 ncdu 进行交互式检查
一般来说,上面两个系统自带的工具就够用了。如果你想要一个更直观的界面来查看和操作大文件,可以使用 ncdu(NCurses Disk Usage),它是一个交互式的磁盘使用情况查看工具,可以像文件管理器一样上下浏览、直接在界面里删除文件。
如果未安装,请先安装它:
sudo apt-get install ncdu # 对于基于 Debian 的系统
然后运行:
ncdu 要找的目录
小结
通过上述方法,你可以迅速定位到那些占用大量空间的文件,从而有效地管理磁盘空间。当然,找出这些日志后,你还可以编写脚本定时删除这些目录下的旧日志,以避免日志无限增长占用过多空间,这个后面再介绍如何编写脚本管理你的日志。