宕机需先区分服务异常或内核崩溃:能切 TTY 说明系统运行,否则可能内核 panic;再查 dmesg、journalctl、syslog 定位原因;常见为内存耗尽或磁盘满,可 kill 进程或清理日志;最后安全重启并部署监控。

一、快速判断宕机类型
系统“宕机”不等于彻底黑屏或死机,先区分是服务不可用、响应迟缓,还是内核崩溃。按 Ctrl+Alt+F2 尝试切换到 TTY 终端,能登录说明系统仍在运行,大概率是图形界面或关键服务(如 SSH、Nginx)异常;若键盘无响应、屏幕冻结、ping 不通且无任何日志输出,才可能是内核 panic 或硬件故障。
二、检查核心日志定位根源
登录后立即查看最近的系统日志:
- dmesg -T | tail -50:看内核级报错(如内存不足 OOM、磁盘 I/O 错误、驱动崩溃)
- journalctl -b -p 3:只显示本次启动的错误级别(err/warn)日志,聚焦关键线索
- tail -n 100 /var/log/syslog(Debian/Ubuntu)或 /var/log/messages(RHEL/CentOS):确认服务启动失败、磁盘满、权限异常等 常见问题
三、常见原因与即时缓解操作
多数宕机由资源耗尽或配置错误引发,可快速干预:
- 内存耗尽(OOM killer 触发):运行 free -h 和 ps aux –sort=-%mem | head -10 找出内存大户,kill -9 PID 终止非关键进程;临时释放缓存:echo 3 > /proc/sys/vm/drop_caches(仅缓解,非根治)
- 根分区满(/dev/root 100%):用 df -h 确认,du -sh /var/log/* | sort -hr | head -5 查找大日志;清理旧日志:journalctl –vacuum-size=100M,或清空特定日志文件(注意备份)
- SSH 或网络服务中断 :检查服务状态 systemctl status sshd,尝试重启 systemctl restart sshd;确认 防火墙 未误封 端口:iptables -L -n 或 ufw status
四、安全重启与预防建议
若无法定位或恢复,避免强制断电。优先执行安全重启:
- 在 TTY 中运行 sync; sync; systemctl reboot(两次 sync 确保数据刷盘)
- 若系统完全无响应,长按电源键 4 秒以上触发硬重启(最后手段)
- 恢复后立即部署基础监控:htop 实时观察资源、logwatch 每日汇总日志、smartctl -a /dev/sda 定期检查磁盘健康
不复杂但容易忽略