1. 检查磁盘空间使用情况
在进行清理前,需先明确磁盘空间的占用情况,定位大文件或目录。常用命令如下:
df -h:查看各文件系统的磁盘使用情况(总大小、已用空间、可用空间及使用百分比),重点关注/(根分区)、/home等常用分区。du -sh /*:统计根目录下各一级目录的大小,快速识别占用空间大的目录(如/var、/usr)。find / -type f -size +100M -exec ls -lh {} \;:查找系统中大于100MB的文件,定位具体的大文件(如日志、备份文件)。2. 清理包管理器缓存
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 # 功能同上,适用于新版本
sudo rm -rf /var/cache/yum/* # CentOS 7
sudo rm -rf /var/cache/dnf/* # CentOS 8+
清理后,下次安装软件时需重新下载依赖,但能释放约100MB~1GB空间。
3. 删除旧的内核版本
系统升级时会保留旧内核,可通过以下步骤删除:
rpm -qa | grep kernel # 列出所有内核版本(按安装时间排序,最新内核在前)
sudo package-cleanup --oldkernels --count=1 # 自动删除除最新外的所有旧内核
或手动指定内核版本(如kernel-3.10.0-1160.el7.x86_64):
sudo yum remove kernel-3.10.0-1160.el7.x86_64 # 替换为目标内核版本
旧内核占用空间约200MB~500MB/个,清理后可显著释放空间。
4. 清理临时文件
临时文件主要存放在/tmp(临时文件,重启后自动清空但可提前清理)、/var/tmp(长期临时文件)目录,以及系统运行时生成的临时文件。清理方法如下:
sudo rm -rf /tmp/* # 清空/tmp目录(确保无正在运行的程序依赖这些文件)
sudo rm -rf /var/tmp/* # 清空/var/tmp目录
sudo find /tmp -type f -mtime +7 -exec rm -f {} \; # 删除/tmp下7天前的文件
sudo find /var/tmp -type f -mtime +7 -exec rm -f {} \; # 删除/var/tmp下7天前的文件
systemd-tmpfiles工具(推荐,符合系统规范):sudo systemd-tmpfiles --clean # 根据系统配置清理临时文件(默认规则见/etc/tmpfiles.d/)
临时文件占用空间不定,定期清理可避免其堆积。
5. 清理日志文件
日志文件(如/var/log/messages、/var/log/httpd/access.log)会随系统运行不断增长,占用大量空间。清理方法如下:
journalctl清理systemd日志(适用于CentOS 7及以上):sudo journalctl --vacuum-size=100M # 保留最近100MB的日志,删除旧日志
sudo journalctl --vacuum-time=2weeks # 保留最近2周的日志
sudo truncate -s 0 /var/log/httpd/*.log # 清空Apache所有.log文件(保留文件,仅清空内容)
sudo rm -rf /var/log/*.log.* # 删除其他旧日志文件(如.gz压缩文件)
logrotate工具(默认已安装),编辑/etc/logrotate.conf或/etc/logrotate.d/下的配置文件,设置日志保留时间、大小限制及压缩规则(如maxsize 100M、rotate 5)。6. 使用磁盘分析工具定位大文件
若上述方法无法释放足够空间,可使用工具直观查看磁盘使用情况:
ncdu(命令行工具,推荐):sudo yum install ncdu -y # CentOS 7安装
sudo dnf install ncdu -y # CentOS 8+安装
sudo ncdu / # 扫描根目录,按大小排序,通过方向键选择并删除大文件/目录
baobab(图形化工具,需GUI环境):sudo yum install baobab -y # 安装
baobab # 运行,点击“扫描”查看磁盘使用情况
工具可快速定位占用空间大的目录(如/var/lib/mysql数据库文件、/home用户文件),便于针对性清理。
7. 清理系统缓存(可选)
系统缓存(页面缓存、目录项缓存、inode缓存)用于提升性能,但可手动清理以释放空间(清理后下次访问文件时需重新读取,短暂影响性能):
sudo sync # 将缓存数据写入磁盘(避免数据丢失)
sudo echo 3 > /proc/sys/vm/drop_caches # 清理页面缓存、目录项缓存、inode缓存
注:此操作需谨慎,建议在系统内存充足时使用。
注意事项
/home、/var等目录的重要文件,避免误删。crontab定时任务(如每天凌晨2点执行),保持磁盘空间稳定。