资讯中心

CentOS7 根分区空间占满?三步快速清理操作指引

  

针对CentOS7根分区空间占满的问题,可按照以下三步快速清理操作指引执行,优先清理高占用资源并确保操作安全性125:


第一步:定位大文件与清理日志

  1. 查看磁盘使用情况
    执行命令

    df -h
    确认根分区(通常为
    /dev/mapper/centos-root
    )使用率是否达到100%。

     

  2. 查找占用空间最大的目录

    cd / # 进入根目录du -h -x --max-depth=1 | sort -hr # 按占用空间降序显示子目录

    重点关注

    /var/log
    (日志)、
    /var/cache
    (缓存)、
    /tmp
    (临时文件)等目录。

     

  3. 清理日志与临时文件

    • 删除旧日志(保留7天内):
      find /var/log -type f -name "*.log" -mtime +7 -delete
    • 清空系统日志(不影响运行中的服务):
      journalctl --vacuum-time=7d # 保留7天日志truncate -s 0 /var/log/*.log# 清空所有日志文件内容(谨慎操作)
    • 清理临时缓存:
      rm -rf /tmp/* # 删除临时文件yum clean all # 清理YUM缓存[2]()

第二步:清理冗余软件与旧内核

  1. 删除未使用的软件包

    package-cleanup --quiet --leaves --exclude-bin | xargs yum remove -y # 删除孤立包[2]()
  2. 移除旧内核(释放/boot空间)

    • 查看已安装内核:
      rpm -q kernel # 列出所有内核uname -r # 查看当前使用中的内核
    • 删除非当前使用的旧内核:
      yum remove $(rpm -q kernel | grep -v $(uname -r)) # 保留当前内核[5]()

第三步:针对性清理高占用服务文件

  1. 数据库日志清理(如MySQL)

    • 若发现
      /var/lib/mysql
      占用过大:
      rm -f /var/lib/mysql/mysql-bin.* # 删除二进制日志(需先关闭日志功能)[9]()
  2. Web服务器缓存清理

    • Apache/Nginx日志清理:
      truncate -s 0 /var/log/httpd/*_log # 清空Apache日志 truncate -s 0 /var/log/nginx/*.log# 清空Nginx日志
  3. 用户缓存清理

    rm -rf /home/*/.cache/* # 删除用户缓存文件

操作后验证

执行

df -h

du -h --max-depth=1 /

检查空间释放情况。若空间仍不足,可考虑扩展根分区813,或通过

lsof +L1

查找已删除但被进程占用的文件14。

 

?? 注意事项:

  • 清理前建议备份重要数据(如
    /home
    )13。
  • 删除内核时务必确认保留当前运行版本56。
  • 日志清理避免直接删除文件,优先使用
    truncate
    防止服务中断。