快速排查Linux服务器上的大文件
使用 du 命令查找大文件或目录
检查整个文件系统的大目录:
du -ah / | sort -rh | head -n 20
du -ah /
:扫描根目录下所有文件和目录的大小,-a 表示包括文件,-h 使输出人类可读。sort -rh
:按大小降序排序,-r 表示逆序,-h 解析人类可读格式。head -n 20
:显示前 20 个最大的文件或目录。
检查特定目录(例如 /var):
如果怀疑某个目录(如 /var 或 /home)占用空间较多,可以指定目录:
bashdu -ah /var | sort -rh | head -n 20
使用 find 查找特定类型的大文件
快速定位大文件,结合 ls:
find / -type f -size +100M -exec ls -lh {} \;
type f
:只查找文件。size +100M
:查找大于 100MB 的文件(可调整大小,如 +1G 表示大于 1GB)。exec ls -lh {} \;
:列出文件详细信息。
排查特定类型的文件(如日志、备份文件等)
find / -type f -name "*.log" -size +100M -exec ls -lh {} \;
- 这会查找所有 .log 结尾且大于 100MB 的文件。
- 常见占用空间的文件类型包括:.log、.bak、.tar.gz、.zip 等。
使用 df 检查磁盘使用情况
df -h
- 输出显示每个挂载点的使用率,找到接近 100% 的分区。
- 然后针对该分区(如
/dev/sda1
挂载在/
)运行du
或find
。
检查常见占用空间的目录
某些目录通常是大文件聚集地,建议重点检查:
日志文件:/var/log
,检查是否有异常大的日志文件(如 syslog 或 messages)。
du -sh /var/log/*
临时文件:/tmp
或 /var/tmp
du -sh /tmp/*
用户文件:/home
du -sh /home/* | sort -rh
数据库或缓存:如 /var/lib/mysql
(MySQL 数据库)或 /var/cache
。