震惊!登录成功页面却不跳转,排查3小时后发现竟是硬盘被写满了"

admin 2026-10-22 01:53:36 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

震惊!登录成功页面却不跳转,排查3小时后发现竟是硬盘被写满了

原创

刘军军
刘军军

运维星火燎原

2026年6月26日 15:13
山西

在小说阅读器读本章

去阅读

一、问题现象

用户在某生产环境进行登录操作,输入用户名和密码后,系统提示\"登录成功\",但页面始终不跳转,仍然停留在登录页面。用户可以反复登录,系统始终提示成功,但就是无法进入系统首页。

二、排查思路

遇到\"登录成功但页面不跳转\"的问题,通常从以下几个方向排查:

排查方向 可能原因
前端问题 路由配置错误、跳转逻辑失效、JavaScript错误
后端问题 Session未正确创建、Cookie未返回、接口返回格式错误
网络问题 请求被拦截、响应被篡改、WebSocket异常
存储问题 Session存储失败、磁盘满导致写入异常

三、详细排查过程

第一步:检查浏览器控制台

打开浏览器F12开发者工具,切换到Console和Network标签:

  • Console发现:有JavaScript错误,但错误信息不明确
  • Network发现:登录接口/api/login返回200状态码,响应体显示{\"code\":0,\"message\":\"登录成功\",\"data\":{...}}
 // 控制台看到类似错误
 UncaughtTypeError: Cannotreadproperty'token'ofnull

第二步:检查登录接口响应

查看登录接口返回的完整数据:

 {
  \"code\": 0,
  \"message\": \"登录成功\",
  \"data\": {
    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",
    \"user_id\": 1001,
    \"username\": \"admin\"
  }
 }

后端返回数据正确,前端应该接收到token。但页面仍然不跳转。

第三步:检查前端登录逻辑

查看前端登录处理代码:

 async function handleLogin() {
  const response=await fetch('/api/login', {
    method: 'POST',
    body: JSON.stringify({ username, password })
  });
  const data=await response.json();

  if (data.code===0) {
    localStorage.setItem('token', data.data.token);  // 这里出问题了
    router.push('/dashboard');  // 跳转失败但不报错
  }
 }

代码看起来没问题,但localStorage.setItem可能静默失败。

第四步:检查浏览器localStorage

在浏览器控制台执行:

 localStorage.setItem('test', 'value');
 console.log(localStorage.getItem('test'));

结果:null —— localStorage无法写入!

第五步:检查后端日志

登录后端服务器,查看应用日志:

 tail -f /var/log/myapp/app.log

发现大量错误:

 ERROR - Failed to write session file: No space left on device
 ERROR - Cannot create temp file: No space left on device
 ERROR - Failed to write to /var/log/myapp/access.log

第六步:检查磁盘空间

 df -h
 Filesystem      Size  Used  Avail  Use%  Mounted on
 /dev/sda1       100G  100G    0G   100% /

根因确认:磁盘使用率100%,硬盘已写满!

四、问题根因分析

为什么登录成功但页面不跳转?

  1. 登录流程:
  • 用户提交用户名密码到后端
  • 后端验证成功,尝试创建Session写入磁盘
  • 磁盘已满,Session写入失败(但后端可能未返回错误)
  • 后端返回登录成功给前端
  • 前端接收到成功响应,尝试将token存入localStorage
  • localStorage受磁盘满影响也失败(浏览器需要写临时文件)
  • 前端执行router.push('/dashboard')跳转
  • 由于某些校验或状态异常,跳转被阻止
  1. 为什么后端显示登录成功?
  • 后端在验证用户名密码阶段就返回成功
  • Session写入是后续步骤,后端可能捕获了异常但仍返回成功
  • 或者后端根本没有校验Session写入是否成功

硬盘写满导致的其他问题

问题 原因
Session失效 Session文件无法写入
日志不记录 日志文件无法写入
图片上传失败 临时文件无法创建
数据库写入变慢 Write-Ahead日志无法刷盘
SSH登录缓慢 系统需要写utmp/wtmp

五、解决过程

紧急处理

 # 1. 清理临时文件
rm -rf /tmp/*
rm -rf /var/tmp/*

# 2. 清理旧日志
find /var/log -name \"*.log\" -mtime+7 -delete

# 3. 清理包管理器缓存
yum clean all
apt-get clean

# 4. 清理旧的核心转储文件
 find / -name \"core.*\" -delete 2>/dev/null

清理完成后检查

 df -h
 Filesystem      Size  Used  Avail  Use%  Mounted on
 /dev/sda1       100G   85G   15G   85% /

磁盘恢复到85%,有15G可用空间。

验证登录

重新测试登录功能,页面正常跳转,问题解决。

六、预防措施

1. 监控磁盘使用率

 # 添加cron任务,每天检查磁盘并告警
 0 0 * * * df -h | grep -E 'Use%|used' | awk '{if($5>85) print $0}' | mail -s \"Disk Warning\" [email protected]

2. 日志轮转配置

 # /etc/logrotate.conf
/path/to/log {
    daily
    rotate 7
    compress
    delaycompress
    notifempty
    missingok
    maxsize 100M
 }

3. 设置磁盘空间告警阈值

阈值 动作
80% 发送警告邮件
90% 自动清理临时文件
95% 自动清理旧日志

4. 应用程序端优化

 # 后端登录时增加磁盘检查
importshutil

defcheck_disk_space():
    total, used, free=shutil.disk_usage(\"/\")
    iffree/total<0.1:  # 少于10%可用
        raiseException(\"Disk space critically low\")

@app.route('/api/login')
deflogin():
    check_disk_space()  # 登录前检查
     # ... 后续登录逻辑

七、经验总结

  1. 隐蔽性强:硬盘写满不一定直接报错,可能表现为各种奇怪的功能异常
  2. 排查要全面:不要只看报错信息,要检查底层资源(磁盘、内存、网络)
  3. 日志是关键:应用日志中往往藏着真相
  4. 监控要到位:在问题发生前发现才能避免损失
  5. Session存储:生产环境应使用Redis等内存存储,避免磁盘依赖

这个案例告诉我们,看似简单的登录问题,背后可能涉及服务器资源耗尽,需要系统性的排查思路才能定位根因。


震惊!登录成功页面却不跳转,排查3小时后发现竟是硬盘被写满了" 网络安全文章

震惊!登录成功页面却不跳转,排查3小时后发现竟是硬盘被写满了"

文档记录了生产环境登录成功但页面不跳转的故障排查案例,最终定位到硬盘写满导致Session和localStorage写入失败。文章详细描述了从前端到后端的系统性排查过程,提供了紧急清理磁盘的具体命令,并总结了设置磁盘监控、日志轮转等预防措施,强调资源监控对系统稳定性的重要性。
我打包了一个便携版ClaudeCode" 网络安全文章

我打包了一个便携版ClaudeCode"

该文档介绍将ClaudeCode打包成Windows便携版的方法,通过向ClaudeCode直接提需求实现环境打包,重点说明目录结构配置和启动脚本编写,强调需清理会话历史防止信息泄露,最终实现解压即可运行的部署方案。
开源赋能AI安全新生态|京东JoySafety入驻开放原子,诚邀行业顶尖力量共建" 网络安全文章

开源赋能AI安全新生态|京东JoySafety入驻开放原子,诚邀行业顶尖力量共建"

京东安全将自研企业级大模型安全框架JoySafety捐赠给开放原子开源基金会,该项目具备95%+攻击拦截率、50ms响应速度的实战性能,采用AI对抗AI三层检测架构覆盖31大类安全风险。框架支持Apache2.0协议开源,邀请行业专家共建国产AI安全生态,未来将重点迭代安全审核大模型和Agent防护能力。
智能系统丨Peraton交互式实时信息系统:认知战时代的人工智能决策支撑平台" 网络安全文章

智能系统丨Peraton交互式实时信息系统:认知战时代的人工智能决策支撑平台"

本文介绍美国Peraton公司的认知战AI平台IRIS。系统通过问答、分析、地理态势与媒体监测模块及多款AI模型实现多源数据融合。其核心在于人机协作架构与决策压缩框架,将作战周期缩短至两至八小时。IRIS已达技术就绪度9级并在美军实战部署,体现AI在信息作战的规模化落地。
评论:0   参与:  0