温馨提示×

如何解决CentOS磁盘空间不足问题

小樊
45
2025-10-17 21:42:54
栏目: 云计算

1. 查看磁盘空间使用情况

首先需要明确哪个分区或目录占用空间过大,使用以下命令快速定位:

  • df -h:查看各分区的磁盘使用情况(总容量、已用空间、可用空间及挂载点),重点关注Use%(使用百分比)高的分区(如/根分区)。
  • du -sh /*:查看根目录下各一级目录的大小,快速定位占用空间大的目录(如/var/home)。
  • ncdu(推荐):交互式磁盘分析工具,更直观地展示目录大小及文件占用情况。安装命令:sudo yum install ncdu,运行后输入sudo ncdu /即可扫描整个系统。

2. 清理临时文件与缓存

临时文件和缓存是磁盘空间的“常驻大户”,清理后可快速释放空间:

  • 清理/tmp/var/tmp目录:这两个目录存放临时文件,可直接删除(确保无正在运行的程序依赖这些文件):
    sudo rm -rf /tmp/* /var/tmp/*
    
  • 清理YUM/DNF缓存:包管理器下载的软件包会缓存在本地,占用/var/cache/yum/var/cache/dnf目录空间:
    sudo yum clean all  # YUM包管理器
    sudo dnf clean all  # DNF包管理器(CentOS 8及以上)
    
  • 清理应用缓存:如浏览器缓存、数据库缓存(如MySQL的ibdata1文件),可通过对应应用的清理功能或手动删除。

3. 删除无用的大文件

通过命令查找并删除占用空间大的文件(如旧备份、视频、日志等):

  • 查找大于100MB的文件
    sudo find / -type f -size +100M -exec ls -lh {} \;  # 列出所有大于100MB的文件
    
  • 查找大于1GB的文件:将+100M改为+1G即可。
  • 确认文件无用后删除:例如删除/var/log目录下的大日志文件:
    sudo rm /var/log/large_log_file.log
    

4. 清理日志文件

日志文件(尤其是/var/log目录)会随时间增长占用大量空间,需定期清理:

  • 使用journalctl清理系统日志:限制日志文件大小(如保留最近100MB):
    sudo journalctl --vacuum-size=100M
    
  • 清空特定日志文件:如清空Apache的access.log(不会删除文件本身,仅清空内容):
    sudo truncate -s 0 /var/log/httpd/access.log
    
  • 使用logrotate自动管理日志:编辑/etc/logrotate.conf配置文件,设置日志轮转周期(如每天、每周)和保留数量,避免日志无限增长。

5. 删除旧的内核版本

CentOS系统会保留多个旧内核版本(以备回滚),可通过以下命令清理:

  • 列出已安装的内核
    rpm -qa | grep kernel
    
  • 删除旧内核(保留最新1个)
    sudo package-cleanup --oldkernels --count=1  # 推荐(安全删除旧内核)
    # 或手动删除(需确认内核版本)
    sudo yum remove kernel-<旧版本号>  # 如kernel-3.10.0-1160.el7.x86_64
    

6. 卸载不需要的软件包

卸载长期不用的软件包可释放其占用的空间:

  • 使用YUM卸载
    sudo yum remove <软件包名>  # 如sudo yum remove firefox
    
  • 自动清理无用依赖
    sudo yum autoremove  # 删除不再需要的依赖包
    

7. 扩展磁盘空间(终极解决方案)

若清理后仍空间不足,需扩展磁盘容量,常见方法如下:

  • 添加新磁盘:物理服务器添加新磁盘,虚拟机在设置中扩容虚拟磁盘。
  • 扩展现有分区
    • 使用fdisk创建新分区→格式化(mkfs)→挂载到指定目录。
    • 若使用LVM(逻辑卷管理),可通过pvcreate(创建物理卷)、vgextend(扩展卷组)、lvextend(扩展逻辑卷)、xfs_growfs(扩展文件系统)快速扩容。
  • 迁移数据到新磁盘:将大目录(如/home/var)挂载到新磁盘,减少原分区压力。

注意事项

  • 备份重要数据:清理或扩展磁盘前,务必备份个人文件、数据库等重要数据,避免误操作导致数据丢失。
  • 谨慎操作:删除系统文件(如/etc/usr下的文件)可能导致系统无法启动,建议优先清理用户目录(/home)和日志文件。
  • 定期维护:设置定时任务(如cron)定期清理临时文件、日志和缓存,避免再次出现空间不足问题。

0