清理包管理器缓存
包管理器(yum/dnf)的缓存会占用大量磁盘空间,定期清理可有效释放空间。对于CentOS 7及以下版本,使用sudo yum clean all命令清理yum缓存(包括已下载的RPM包和元数据);对于CentOS 8及以上版本,使用sudo dnf clean all命令清理dnf缓存。此操作不会影响已安装的软件,仅删除临时缓存文件。
删除无用软件包和旧内核
无用软件包(不再被任何程序依赖的依赖项)和旧内核会占用额外空间。使用sudo yum autoremove(或dnf autoremove)命令自动检测并删除无用软件包;使用rpm -q kernel命令列出已安装的内核版本,然后通过sudo yum remove kernel-version(或dnf remove)删除旧内核(建议保留最近1-2个内核版本,避免系统无法启动)。
清理日志文件
日志文件(如/var/log/messages、/var/log/secure)会随时间增长占用大量空间。可通过以下方式清理:
sudo journalctl --vacuum-time=7d命令删除7天前的系统日志(保留最近7天的日志,避免误删近期重要信息);sudo find /var/log -type f \( -name "*.log" -o -name "*.gz" \) -mtime +30 -exec rm -f {} \;命令删除30天前的旧日志文件(.log和.gz格式);sudo find /var/log -type f -name "*.log" -size +100M -exec truncate -s 0 {} \;命令清空超过100MB的大日志文件(不清除文件本身,仅清空内容,避免日志服务中断)。清理临时文件
临时文件(如/tmp、/var/tmp目录下的文件)通常是无用的中间文件,定期清理可释放空间。
sudo rm -rf /tmp/*和sudo rm -rf /var/tmp/*命令删除/tmp和/var/tmp目录下的所有文件(注意:/tmp目录中的文件可能在系统重启时自动清除,但手动清理可提前释放空间);find命令查找7天前的临时文件并删除,例如sudo find /tmp -type f -mtime +7 -exec rm -f {} \;和sudo find /var/tmp -type f -mtime +7 -exec rm -f {} \;;systemd-tmpfiles工具,通过创建配置文件(如/etc/tmpfiles.d/cleanup.conf,内容为w /tmp 1777 root root -)设置清理规则(每周清理/tmp目录),然后运行sudo systemd-tmpfiles --clean命令应用配置。查找并清理大文件
大文件(如超过100MB的视频、备份文件)是磁盘空间的主要占用者,可通过以下命令查找并清理:
du -sh /*命令查看各目录的磁盘使用情况(找出占用空间大的目录),或使用find / -type f -size +100M -exec ls -lh {} \;命令查找系统中所有大于100MB的文件;rm命令删除(例如sudo rm -f /path/to/large_file)。建议使用ncdu工具(sudo yum install ncdu安装)可视化分析磁盘使用情况,更直观地定位大文件。清理用户缓存和应用缓存
用户缓存(如浏览器缓存、pip缓存、npm缓存)和应用缓存(如Apache、Nginx、MySQL)也会占用空间。
rm -rf ~/.cache/*(清理用户主目录下的.cache目录)、rm -rf ~/.npm/_cacache(清理npm缓存)、rm -rf ~/.pip/cache/*(清理pip缓存);sudo rm -rf /var/cache/apache2/*(清理Apache缓存)、sudo rm -rf /var/cache/nginx/*(清理Nginx缓存)、sudo systemctl stop mysqld && sudo rm -rf /var/lib/mysql/* && sudo systemctl start mysqld(清理MySQL缓存,需停止MySQL服务)。清理前需确保应用未在运行(如MySQL),避免数据丢失。使用第三方工具(可选)
若不想手动执行命令,可使用第三方工具简化清理流程。例如:
sudo yum install bleachbit,运行后选择需要清理的项目即可;注意事项
rm -rf命令会递归删除目录及其内容,执行前确认目标目录是否正确;