温馨提示×

CentOS如何快速释放磁盘空间

小樊
60
2025-10-11 05:58:57
栏目: 云计算

1. 清理包管理器缓存(快速释放小文件空间)
CentOS的包管理器(YUM/DNF)会缓存下载的软件包,占用/var/cache/yum(CentOS 7)或/var/cache/dnf(CentOS 8+)目录空间。使用以下命令清理:

  • CentOS 7:sudo yum clean all
  • CentOS 8及以上:sudo dnf clean all
    该操作会立即删除缓存文件,释放约几十MB至几GB空间(取决于软件包数量)。

2. 删除临时文件(立即释放空间)
系统临时文件存放在/tmp/var/tmp目录,包含应用运行时生成的临时数据(如安装包解压文件、缓存文件)。使用以下命令清理:

sudo rm -rf /tmp/* /var/tmp/*

注意:/tmp目录下的文件可能会被系统或应用重新创建,但清理后能快速释放空间(通常几MB至几十MB)。

3. 清理日志文件(针对大日志释放空间)
日志文件(如/var/log/messages/var/log/secure/var/log/cron)可能因长期运行积累大量数据(GB级)。常用清理方法:

  • 截断特定日志:如清空messages日志(保留文件但清空内容):
    sudo truncate -s 0 /var/log/messages
    
  • 删除旧日志:使用find命令删除7天前的.log文件:
    sudo find /var/log -type f -name "*.log" -mtime +7 -exec rm -f {} \;
    
  • 使用logrotate自动化:编辑/etc/logrotate.conf,设置日志保留天数(如rotate 7保留7天)和压缩规则,避免日志无限增长。

4. 删除旧内核(释放/boot目录空间)
CentOS每次系统更新会保留旧内核,导致/boot目录占用过多空间(尤其是频繁更新的系统)。使用以下命令清理:

# 列出已安装内核(保留最新1个,删除其余)
sudo package-cleanup --oldkernels --count=1

或手动删除旧内核(如kernel-3.10.0-1160.el7.x86_64,保留当前使用的kernel-3.10.0-1160.105.el7.x86_64):

sudo yum remove kernel-<旧版本号>

该操作可释放/boot目录约100MB至几GB空间。

5. 使用ncdu工具快速定位大文件/目录
ncdu(NCurses Disk Usage)是交互式磁盘分析工具,能直观显示目录/文件大小,帮助快速找到大文件。

  • 安装:sudo yum install ncdu(CentOS 7)或sudo dnf install ncdu(CentOS 8+)
  • 使用:运行ncdu /扫描根目录,通过方向键导航,按d键删除选中的大文件/目录。

6. 清理用户目录临时文件(释放用户空间)
用户目录(如/home)中的临时文件(如浏览器缓存、下载文件、桌面文件)可能占用大量空间。常用清理方法:

  • 清空用户回收站:sudo rm -rf /home/*/.local/share/Trash/*
  • 清理浏览器缓存(以Firefox为例):rm -rf ~/.mozilla/firefox/*.default-release/cache/*
  • 查找用户目录大文件:du -sh /home/* | sort -rh | head -n 5(查看用户目录下最大的5个目录)。

注意事项

  • 操作前备份重要数据(如/home/var目录),避免误删。
  • 定期清理(如每周清理临时文件、每月清理日志和缓存),避免空间再次快速占满。
  • 若清理后仍空间不足,需考虑扩容(如LVM扩展逻辑卷)或迁移大文件至其他存储设备。

0