服务器硬盘满了怎么办?Linux 磁盘清理实战指南
服务器告警最常见的除了带宽跑满,就是磁盘满了。硬盘一满,网站打不开、数据库写不进、SSH 都连不上。
第一步:看磁盘使用情况
df -h看哪个分区使用率最高,一般是 / 或 /var。
第二步:找大文件
找当前目录下最大的文件和目录:
du -sh * | sort -rh | head -10找整个系统最大的目录:
cd / && du -sh * | sort -rh | head -20第三步:清理常见占用
清理系统日志
journalctl --vacuum-size=200M这会保留最近 200M 的日志,更早的删掉。
清理 yum/apt 缓存
CentOS:
yum clean allUbuntu:
sudo apt autoclean && sudo apt autoremove清理旧内核
package-cleanup --oldkernels --count=2清理临时文件
rm -rf /tmp/*第四步:查是否有大日志文件
有些程序会写单文件巨大的日志:
find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null找到后确认是否可以清空:
> /var/log/largefile.log第五步:查是否有被删除但未释放的文件
lsof | grep deleted有些文件被 rm 了但进程还在写,磁盘空间不会释放,需要重启进程:
systemctl restart 进程名预防建议
- 设置日志轮转(logrotate),按大小和时间自动切割
- 监控磁盘使用率,超过 80% 自动告警
- 数据库和网站数据放在独立分区,避免写满系统盘
按这个流程来排查,10 分钟内就能解决磁盘满的问题。
评论