Linux服务器磁盘盘龙?进不去 opt 目录怎么办?redis也无法正常使用?
2026/7/24 13:41:24 网站建设 项目流程

磁盘满的时候,cd /opt进不去是很常见的,因为根分区/已经100%占满,连目录的 inode 或临时文件都无法写入,甚至连目录切换都可能失败。下面给你一套按顺序执行、零风险、能快速腾出空间的方案,优先解决“进不去目录”的问题。


第一步:先解决“命令都用不了”的紧急情况

先执行下面这两条,直接腾出几十到几百MB空间,让基础命令恢复可用:

# 1. 清理系统 journal 日志(最安全,不会删业务数据)journalctl --vacuum-size=100M# 2. 清理 /tmp 目录里7天以上没访问的临时文件(无业务影响)find/tmp-typef-atime+7-delete

执行完后,用df -h再看一下,/分区使用率应该会从100%降到99%甚至更低,此时cd /opt大概率就能进去了。


第二步:定位根分区的“罪魁祸首”

空间恢复后,执行下面的命令,找出占用最大的目录/文件:

# 1. 看根目录下哪些目录最大du-sh/*2>/dev/null|sort-hr|head-10# 2. 专门查 /var/lib/docker(Docker 占用磁盘的重灾区)du-sh/var/lib/docker/*2>/dev/null|sort-hr|head-10

常见的占用大户有:

  • /var/log:系统日志、应用日志疯狂打日志
  • /var/lib/docker:容器日志、镜像、卷占用空间
  • /opt:你要进的目录里可能有大文件/日志
  • /root:root用户的大文件、备份包

第三步:针对性清理(按优先级从高到低)

1. 清理 Docker 资源(如果你的 Redis 是 Docker 部署)
# 先清理无用的容器、镜像、网络、卷(不影响正在运行的容器)dockersystem prune-a--volumes# 清理容器日志(解决“容器日志打满磁盘”的问题)# 先找到 Redis 容器IDdockerps|grepredis# 再清理它的日志(替换<容器ID>)truncate-s0/var/lib/docker/containers/<容器ID>/*-json.log
2. 清理日志文件(安全,不影响业务)
# 清理 /var/log 下的大日志文件(不要直接 rm,用 truncate 清空,避免文件句柄泄漏)# 比如清空 syslogtruncate-s0/var/log/syslog# 清空 nginx/应用日志(如果有的话)truncate-s0/var/log/nginx/*.log
3. 处理 /opt 目录的问题

等磁盘空间降到95%以下后,再执行:

# 进入 /opt 目录cd/opt# 查看目录内文件大小du-sh*2>/dev/null|sort-hr|head-10

如果是/opt里的大文件占满了磁盘,可以选择性删除无用的安装包、备份包、日志文件,或者把大文件迁移到其他挂载盘。


第四步:避免后续再出现磁盘爆满

  1. 给 Redis 容器配置日志轮转,限制日志大小,避免日志打满磁盘。
  2. 给根分区设置磁盘告警,比如使用率超过80%就发邮件提醒。
  3. 给 Redis 配置maxmemory,避免数据无限增长撑爆磁盘。

如果执行第一步后还是进不去/opt,可以把du -sh /*的结果发给我,我帮你分析是哪个目录占了空间,给你定制清理命令。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询