一、查看磁盘使用情况(清理前必备)
在清理前,需先明确磁盘空间占用情况,定位大文件或目录。常用命令:
df -h:查看各挂载点(如根分区/、/home)的总大小、已用空间、可用空间及使用百分比,快速识别空间不足的分区。du -sh /*:统计根目录下各一级目录(如/usr、/var、/home)的大小,找出占用空间大的顶级目录。find / -type f -size +100M -exec ls -lh {} \;:查找系统中大于100MB的文件,结合-exec rm -f {} \;可批量删除(需谨慎确认文件用途)。二、清理包管理器缓存(快速释放空间)
CentOS的包管理器(yum/dnf)会缓存下载的RPM包和元数据,占用/var/cache/yum(CentOS 7)或/var/cache/dnf(CentOS 8+)目录空间。
yum):sudo yum clean all  # 清理所有缓存(元数据、RPM包、旧头文件)
dnf):sudo dnf clean all  # 功能同yum clean all,兼容性更好
此操作可释放约100MB-1GB空间(取决于缓存大小)。
三、删除旧的内核版本(避免内核堆积)
CentOS会保留旧内核以备回滚,但过多旧内核会占用/boot分区(通常空间较小)。
rpm -qa | grep kernel  # 列出所有内核包(按安装时间排序,最新内核在前)
sudo package-cleanup --oldkernels --count=1  # 自动删除除最新外的所有旧内核
或手动指定旧内核版本(如kernel-3.10.0-1127.el7.x86_64):
sudo yum remove kernel-<旧版本号>  # CentOS 7
sudo dnf remove kernel-<旧版本号>  # CentOS 8+
注意:不要删除当前正在使用的内核(可通过uname -r查看)。
四、清理临时文件(无用文件快速释放)
临时文件通常存放在/tmp(临时文件,重启后可能被清除)和/var/tmp(长期临时文件)目录,占用大量空间。
sudo rm -rf /tmp/*  # 清空/tmp目录(确保无程序正在使用其中的文件)
sudo rm -rf /var/tmp/*  # 清空/var/tmp目录
注意:部分应用程序(如浏览器、数据库)可能在/tmp中存储临时数据,清理前建议关闭相关程序。
五、清理日志文件(避免日志膨胀)
日志文件(如/var/log/messages、/var/log/httpd/access_log)会随系统运行不断增长,占用/var/log分区空间。
sudo truncate -s 0 /var/log/*.log  # 清空所有.log文件(保留文件本身,仅删除内容)
sudo rm -rf /var/log/*.log.*  # 删除.log.*文件(如.gz压缩日志)
logrotate自动化管理:logrotate是CentOS自带的日志轮转工具,可自动压缩、删除旧日志。编辑配置文件/etc/logrotate.conf,调整rotate(保留日志份数)、size(日志大小阈值)等参数,或手动触发轮转:sudo logrotate -f /etc/logrotate.conf  # 强制立即轮转
sudo journalctl --vacuum-time=2weeks  # 清理systemd日志(保留最近2周)
sudo find /var/log/httpd -type f -name "*.log" -mtime +7 -exec rm -f {} \;  # 删除7天前的Apache日志
六、查找并删除大文件/目录(针对性释放空间)
若上述方法释放空间不足,可通过以下命令查找并删除占用空间大的文件或目录:
find / -type f -size +500M -exec ls -lh {} \;  # 查找大于500MB的文件
结合-exec rm -f {} \;可批量删除(需确认文件用途,避免误删系统文件)。du -sh /var/* | sort -rh | head -n 10  # 查看/var目录下最大的10个目录
根据输出结果,进入大目录(如/var/log、/var/lib/mysql)删除不必要的文件(如旧数据库备份、日志)。七、使用工具辅助清理(可视化操作)
若不熟悉命令行,可使用图形化工具更直观地清理磁盘:
ncdu(命令行工具):sudo yum install ncdu(CentOS 7)或sudo dnf install ncdu(CentOS 8+);sudo ncdu /,通过交互式界面查看目录大小,按d键删除文件/目录。Baobab(图形化工具):sudo yum install baobab;baobab,选择要扫描的目录(如/),查看大文件分布,右键删除。bleachbit(图形化工具):sudo yum install bleachbit;sudo bleachbit,选择要清理的项目(如“系统缓存”“日志文件”“临时文件”),点击“清理”。八、定期维护(预防空间不足)
为避免磁盘空间频繁不足,建议设置定时任务(cron)定期执行清理操作:
crontab -e;0 3 * * 0 /usr/bin/find /tmp -type f -delete && /usr/bin/find /var/tmp -type f -delete && /usr/bin/journalctl --vacuum-time=2weeks
注意:根据实际需求调整清理频率和范围,避免误删重要文件。