当前位置: 首页 > news >正文

服务器关机故障排查:大白话版笔记

注意:本文解释文字仅供学习交流使用,不构成专业的技术指导或建议;只是理论实例解释不代表实际运维场景操作,注意鉴别!

运维日常最头疼的就是服务器 “突然躺平”

—— 要么没操作就自己关机,要么想关还关不掉。

紧急检查清单 (Cheat Sheet)
服务器突然宕机,重启后第一件事:sudo journalctl -b -1 -p err..alert | tail -50sudo journalctl -b -1 | grep -i "thermal\|panic\|oom\|power" | tail -20登录 iDRAC/iLO,查看 硬件日志 和 电源状态。运行 sensors 和 smartctl -H /dev/sda。关机命令卡住时:Ctrl+Alt+F2 切换到其他 TTY。systemctl status --state=failedtop (按 P 按 CPU 排序,按 M 按内存排序)sudo kill -9 <最占资源的进程PID>如果无效,尝试通过 ipmitool chassis power reset 或 iDRAC 界面硬重启。

一、先搞懂:遇到的是哪种 “关机故障”?

   举个例子:远程连服务器传文件,突然断了,去机房看机器灯灭了 —— 这是 “意外关机”;执行poweroff,屏幕显示 “等进程 1234 结束”,卡半小时 —— 这是 “关机失败”。

故障类型 大白话现象 重点排查啥
意外关机 / 宕机 正干活呢突然断连,屏幕黑了,电源灯可能闪红 大概率是硬件 / 电源 / 温度出问题
主动关机失败 执行shutdown后卡住,半天没反应 肯定是某个程序 / 服务 “赖着不走”

二、通用排查流程:从 “看日志” 到 “拆硬件”(按顺序来,别瞎搞)

步骤 1:先看日志!90% 的问题都在日志里写着呢

日志就是服务器的 “日记本”,关机前发生啥都会记下来。重点看 3 个地方,按优先级来:

1.1 用journalctl看 “完整日记”(推荐!)

这工具能看服务器 “上一次开机到关机” 的所有记录,哪怕日志文件丢了也能找着。

# 1. # 查上一次开机的所有日志(比如服务器刚硬重启,查宕机前的记录)
sudo journalctl -b -1 # -b -1 = 上一次启动,-b 0 = 现在的启动# 偷懒技巧:直接搜“关机”关键词
sudo journalctl -b -1 | grep -i 关机  # 或用英文 shutdown# 2. 在上次日志中过滤关键错误
sudo journalctl -b -1 -p err..alert # 查看错误及以上级别的日志
sudo journalctl -b -1 | grep -iE "error|panic|oom|thermal|shutdown|power"# 3. 查看内核日志
sudo journalctl -b -1 -k
  • 看到 “systemd-shutdown:给所有进程发停止信号”—— 说明是有人手动关的,或计划任务触发的;
  • 看到 “Kernel panic:致命错误”—— 内核崩了,大概率是硬件或驱动坏了;
  • 看到 “温度超过阈值,CPU 降频”——CPU 太热了,服务器自我保护关机了。
1.2 看syslog:系统级 “流水账”

记录服务启停、简单硬件问题,比如谁执行了关机命令。

# 实时查看系统日志(用于观察关机卡住时的动态)
sudo tail -f /var/log/syslog# 看最近100条日志,按Ctrl+C停
sudo tail -n 100 /var/log/syslog# 搜“关机/重启”相关的
sudo grep -iE "关机|重启|poweroff" /var/log/syslog
1.3 看kern.log:内核 “吐槽本”

专门记硬件相关的破事,比如硬盘坏了、内存出错。

注意:云服务器的日志排查核心是 “利用云平台工具”,而非执着于本地 kern.log—— 这和物理机完全不同

# 搜硬件错误关键词:电源、温度、错误、崩溃
sudo grep -iE "电源|温度|error|panic" /var/log/kern.log
  • “ACPI: 电源按钮被按了”—— 有人去机房按了电源键;
  • “sd 0:0:0:0: [sda] 错误”—— 硬盘 sda 坏了,读写出错;
  • “内存检测到不可修复错误”—— 内存条废了,得换。

步骤 2:查硬件!日志说硬件坏了,就得验证

       如果日志提示 “温度高”“硬盘错”,或者没日志(突然断电),就查硬件。

2.1 先查电源:最容易出问题的地方

服务器 “突然躺平”,80% 先看电源!

  • 物理检查
    1. 去机房看看:电源线松没松?插座有电没?
    2. 机架服务器看电源模块灯:绿灯常亮是好的,红灯 / 闪就是坏了;
    3. 有 UPS 的话:看 UPS 灯,是不是电池没电了(一般 UPS 没电会叫)。
  • 远程查(不用去机房)
    服务器带 “远程管理卡”(戴尔叫 iDRAC,华为叫 iBMC),登录 Web 界面,找 “硬件日志”→“电源事件”,看有没有 “电源掉电” 记录。
    也能用命令查:

    bash

    # 查电源状态(需装ipmitool,提前在有网时装)
    sudo ipmitool -H 远程管理卡IP -U 用户名 -P 密码 chassis status
    # 正常会显示“系统电源:开”,没电源问题
    
2.2 查散热:CPU “中暑” 也会关机

        服务器跟人一样,太热了就罢工!

  • 系统内查温度
    # 先装温度工具(有网时装)
    sudo apt install lm-sensors# 看CPU/硬盘温度
    sudo sensors
    

    看结果里的 “crit”(临界温度),比如 CPU 临界 100℃,现在 95℃—— 快中暑了,赶紧处理!
  • 物理检查(断电后!)
    1. 开机箱,看 CPU 风扇转不转?是不是积灰堵了(用吹风机吹干净);
    2. 看 CPU 和散热器之间的 “硅脂”—— 
2.3 查关键硬件:内存、硬盘、RAID 卡

    这仨坏了,服务器要么关机,要么数据丢!

举个例子:查 RAID 卡电池,输出 “Battery State: Failed”—— 电池坏了,得联系厂商换。

硬件 怎么查 好的状态 坏了的信号
内存 1. 开机时按提示进 BIOS,选 “内存检测”;2. 系统里装memtest86+,重启后检测 没错误提示 检测说 “不可修复错误”,日志里有 “内存错误”
硬盘 1. 装smartctl,执行sudo smartctl -a /dev/sda;2. 查dmesg看有没有硬盘错误 SMART 状态 “通过”,没 IO 错误 SMART 说 “预失败”,dmesg有 “sd [a-z] error”
RAID 卡 1. 戴尔用perccli工具,执行sudo ./perccli /c0 show battery;2. 远程管理卡看 RAID 状态 RAID 正常,电池容量 > 50% RAID 显示 “降级”,电池状态 “失败”

步骤 3:查软件:不是硬件的锅,就是软件在 “搞事”

3.1 意外关机:是
http://www.dtcms.com/a/353686.html

相关文章:

  • 软件定义汽车(SDV)调试——如何做到 适配软件定义汽车(SDV)?(上)
  • R包fastWGCNA - 快速执行WGCNA分析和下游分析可视化
  • 【Mascaret】QGIS中Mascaret插件的使用
  • JAVA 引用类型深拷贝的三种实现方式
  • (48)华为云平台-rpa-安全组限制端口+ip
  • (一)光头整洁架构(Mediator Pattern/Result Patttern/UnitOfWork/Rich Domain)
  • docker部署spring boot,安装jdk17、maven3.8.8详细步骤
  • 【C++】菱形继承深度解析+实际内存分布
  • 【题解】Codeforces Round 1045 (Div. 2) Problem.B ~ Problem.E
  • KANO 模型:功能不是“加一分”,而是“分五类”
  • YOLO-yaml/pt模型文件的差异
  • GitFlow工作流
  • 铠德科技为您详解静电与温冲背后的隐形损失
  • 下一代防火墙
  • nestjs 导出excel
  • JoyAgent-JDGenie开源多智能体系统详解:架构、部署与企业级应用案例
  • day22 回溯算法part01
  • Day6--HOT100--238. 除自身以外数组的乘积,41. 缺失的第一个正数,73. 矩阵置零
  • 前端漏洞(下)- ClickJacking漏洞
  • 指针 (六):sizeof和strlen细节强化之“做题篇”
  • stl--std::map
  • Java 使用Jna 调用 C# dll文件踩到的坑
  • SpringBoot整合Redis:从入门到实战的完整指南
  • 【Linux 小实战】自定义 Shell 的编写
  • LCD 上显示字符
  • zookeeper-集群扩缩容
  • 稳敏双态融合架构--架构师的练就
  • banner这个文件是怎么请求到后端数据的
  • Rust:引用
  • Vue-24-利用Vue3的element-plus库实现树形结构数据展示