CentOS系统磁盘满快速清理完整步骤

24次阅读
没有评论

引言:磁盘满,服务告急!

对于运维人员来说,最怕的告警之一就是No space left on device。CentOS服务器磁盘空间一旦爆满,不仅服务响应变慢,严重时甚至会崩溃。但别慌,只要掌握一套系统的清理流程,就能快速释放空间,恢复运行。本文从检查到清理,再到自动维护,给你一份完整的操作指南。

第一步:诊断磁盘空间

首先摸清磁盘使用状况,使用df -h查看各分区挂载点与使用率。例如:

df -h | grep -E ‘^/dev/’

找到使用率超过80%的分区后,用du逐层排查大目录。最常用的是:

du -sh /var/* | sort -rh | head -10

这能快速定位到占用最多的子目录,如/var/log、/var/cache、/tmp等。

第二步:清理YUM缓存

YUM在安装更新时会产生大量缓存,通常位于/var/cache/yum。清理命令:

yum clean all

如果还安装了dnf(CentOS 8/9),执行dnf clean all。这部分通常能释放几百MB到数GB。

第三步:清理系统日志

日志是磁盘杀手,尤其/var/log/下的messages、secure、maillog等文件会随时间膨胀。手动清理:

find /var/log -type f -name “*.log” -size +100M -exec truncate -s 0 {} ;

对于systemd日志(journalctl),限制其大小:

journalctl –vacuum-size=500M

或者配置/etc/systemd/journald.conf中的SystemMaxUse=500M,重启服务生效。

还可以调整logrotate保留策略,编辑/etc/logrotate.d/下对应配置文件,缩短保留天数。

第四步:清理临时文件

/tmp和/var/tmp目录存放临时文件,系统默认启动时不会自动清理所有内容。使用tmpwatch工具(CentOS 7)或systemd-tmpfiles清理:

yum install -y tmpwatch

tmpwatch -m 72 /tmp # 删除72小时未访问的文件

CentOS 8+可以用systemd-tmpfiles –clean,并检查/usr/lib/tmpfiles.d/中的规则。

第五步:清理废旧内核与包

长期运行的系统会积累多个内核版本,占用/boot空间。查看已安装内核:

rpm -qa | grep kernel

保留当前运行的内核,删除旧版:

package-cleanup –oldkernels –count=2

对于CentOS 8+,使用dnf remove $(dnf repoquery –installonly –latest-limit=-2 -q)。另外,执行yum autoremove移除孤立依赖包。

第六步:查找并删除大文件

某些残留的大文件(如log文件、core dump、备份文件)往往隐藏在深处。用find搜索大于100MB的文件:

find / -type f -size +100M -exec ls -lh {} ; 2>/dev/null | sort -k5 -rh | head -20

确认无用后删除或移至其他分区。注意/home下的个人文件,特别是.cache、.local/share/Trash等。

第七步:Docker容器与镜像清理

如果系统运行Docker,镜像和容器会吃掉大量空间。大招:

docker system prune -a –volumes

该命令会删除所有停止的容器、未使用的网络、悬空镜像、挂载卷。建议在非生产环境执行前确认。

第八步:自动化清理脚本

手动清理费时,写个脚本扔进crontab每周执行一次,例如:

#!/bin/bash

# 清理YUM缓存

yum clean all

# 清理journal日志(保留最近3天)

journalctl –vacuum-time=3d

# 清理临时文件

find /tmp -type f -atime +3 -delete

# 清理Docker(可选)

docker system prune -f –volumes

保存为/root/clean_disk.sh,赋予可执行权限,添加到crontab -e:

0 3 * * 0 /root/clean_disk.sh >/dev/null 2>&1

总结

磁盘空间管理是CentOS运维的基本功。通过上述步骤——检查、清理缓存、日志、临时文件、废旧内核、大文件、Docker,再配合自动化脚本——你可以将磁盘使用率始终控制在安全线以下。建议每月执行一次全面检查,避免临时抱佛脚。记住:预防胜于清理,合理配置日志轮转、下载包管理策略才是长远之计。

正文完
 0
评论(没有评论)