Linux运维故障排查速查命令清单

Linux运维故障排查速查命令清单

一、系统基础状态(第一时间执行)

核心概览命令

bash 复制代码
# 运行时长、平均负载
uptime
# 系统整体资源实时监控
top
htop  # 需安装,可视化更强,交互更友好
# 内存、swap使用情况(人类可读格式)
free -h
# 磁盘分区空间占用
df -h
# inode占用(排查小文件爆满问题)
df -i
# 磁盘整体IO负载(1秒刷新一次)
iostat -x 1
# 内核硬件、崩溃报错(带时间戳)
dmesg -T
# 系统全局日志实时追踪
tail -f /var/log/messages
# CentOS7+/RHEL7系统日志(详细报错)
journalctl -xe

二、CPU高负载排查

定位高CPU进程/线程

bash 复制代码
# 按CPU使用率降序排序进程
ps aux --sort=-%cpu
# 单个进程CPU线程详情(1秒刷新)
pidstat -u 1
# 定位高CPU线程(Java等多线程程序常用)
top -H -p 进程ID
# 查看定时任务是否异常
cat /etc/crontab
crontab -l

三、内存OOM、内存溢出排查

内存占用与OOM排查

bash 复制代码
# 按内存使用率降序排序进程
ps aux --sort=-%mem
# 进程内存详细统计(1秒刷新)
pidstat -r 1
# 查看被删除但未释放的大日志文件(句柄残留)
lsof | grep deleted
# 临时清理缓存(生产环境谨慎执行)
sync; echo 3 > /proc/sys/vm/drop_caches
# 查看OOM杀死进程记录
grep -i oom /var/log/messages
dmesg | grep -i kill
# swap使用详情
cat /proc/swaps
# 查看系统swappiness参数(内存使用策略)
cat /proc/sys/vm/swappiness

四、磁盘空间 & IO故障

4.1 空间查找

bash 复制代码
# 逐层查找大目录
du -sh /*
du -sh /data/*
# 查找系统中大于1G的文件
find / -type f -size +1G -exec ls -lh {} \;

4.2 IO卡死、磁盘慢

bash 复制代码
# 实时IO统计(1秒刷新)
iostat -x 1
# 进程级IO占用监控
iotop
# 进程IO详细统计(1秒刷新)
pidstat -d 1
# 磁盘坏道检测(需安装smartmontools)
smartctl -a /dev/sda
# 文件系统检查(必须先卸载分区)
umount /dev/sdb1
fsck.ext4 /dev/sdb1
# 只读模式查看磁盘挂载参数
mount

五、网络连通、端口、延迟排查

5.1 网卡基础

bash 复制代码
# 查看网卡IP、状态
ip a
# 查看路由表
ip route
# 查看主机名对应IP
hostname -i
# 网卡流量实时统计(1秒刷新)
sar -n DEV 1

5.2 连通性、丢包延迟

bash 复制代码
# 测试与网关/目标IP连通性
ping 网关/IP
# 路由逐跳丢包检测(最强网络排错工具)
mtr 目标IP
# DNS解析测试
nslookup baidu.com
dig baidu.com
# 临时修改DNS(重启网络后失效)
echo "nameserver 114.114.114.114" > /etc/resolv.conf

5.3 端口占用、监听

bash 复制代码
# 全量端口监听状态(推荐,比netstat高效)
ss -tulnp
# 老式端口监听查看(兼容旧系统)
netstat -tulnp
# 查指定端口占用进程
ss -tulnp | grep 8080
# 端口连通测试
telnet IP 端口
curl -v IP:端口
# 防火墙状态与规则
firewall-cmd --list-all
systemctl status firewalld

5.4 SSH专属故障

bash 复制代码
# 查看ssh服务状态
systemctl status sshd
# 关闭DNS反向解析(解决ssh登录卡顿)
grep UseDNS /etc/ssh/sshd_config
# 密钥权限校验(.ssh目录需700,密钥文件需600)
ls -l ~/.ssh/

六、服务启停、崩溃排查

bash 复制代码
# 查看服务运行状态
systemctl status nginx mysqld redis
# 查看所有服务开机自启状态
systemctl list-unit-files --type=service
# 查看服务启动详细报错日志
journalctl -u nginx -xe
# 手动前台启动服务(直接看报错)
nginx -c /etc/nginx/nginx.conf
# Nginx配置文件语法校验
nginx -t
# MySQL配置文件安全检测
mysqld --validate-config

七、权限、SELinux、sudo问题

bash 复制代码
# 查看SELinux状态
getenforce
# 临时关闭SELinux(重启后失效)
setenforce 0
# 查看文件安全上下文(SELinux相关)
ls -Z 文件名
# 检查sudo配置文件语法
visudo -c
# 查看用户归属组
id root
id 普通用户名
# 查看当前用户打开文件数限制
ulimit -n
# 系统全局文件句柄限制配置
cat /etc/security/limits.conf
# 使用绝对路径执行脚本,调试脚本执行过程
sh -x /path/to/script.sh

八、高频故障场景排查(现象+原因+方案)

8.1 僵尸进程过多(defunct)

  • 故障现象ps 查看大量 defunct 进程,占用系统进程资源
  • 核心原因:子进程退出后父进程未回收、程序异常退出
  • 解决方案:重启对应业务服务、重启服务器彻底清理,优化程序进程回收机制

8.2 Permission denied 权限拒绝

  • 故障现象:无法读写文件、脚本执行失败、服务启动报错权限不足

  • 核心原因:文件属主属组错误、权限不足、SELinux拦截、挂载参数限制

  • 解决方案

    bash 复制代码
    # 修改文件/目录权限
    chmod 755 文件/目录
    # 修改文件/目录属主属组(递归)
    chown -R 用户:组 文件/目录
    # 临时关闭SELinux
    setenforce 0
    # 永久关闭SELinux(修改配置文件)
    vi /etc/selinux/config  # 将SELINUX=enforcing改为SELINUX=disabled

8.3 文件系统只读(Read-only file system)

  • 故障现象:所有写入操作报错只读,无法修改任何文件

  • 核心原因:磁盘文件系统损坏、fstab配置错误、磁盘异常触发内核保护

  • 解决方案

    bash 复制代码
    # 重新挂载根目录为读写模式
    mount -o remount,rw /
    # 修复文件系统(需先卸载分区)
    umount /dev/分区名
    fsck /dev/分区名
    # 检查并修正/etc/fstab错误配置
    vi /etc/fstab

8.4 SSH无法连接服务器

  • 故障现象:连接超时、连接被拒绝、密码正确无法登录

  • 核心原因:sshd服务未启动、22端口不通、ssh配置错误、密钥文件权限异常、用户锁定

  • 解决方案

    bash 复制代码
    # 确保SSH服务正常运行
    systemctl status sshd
    systemctl start sshd
    # 客户端测试22端口连通性
    nc -zv 服务器IP 22
    # 修复.ssh目录及密钥权限
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/id_rsa
    # 解锁用户
    passwd -u 用户名

8.5 Sudo提权失败

  • 故障现象:普通用户sudo命令报错,无法获取root权限

  • 核心原因:用户未加入wheel组、sudoers文件语法错误、文件权限异常

  • 解决方案

    bash 复制代码
    # 添加用户到wheel组(sudo权限组)
    usermod -aG wheel 用户名
    # 修复sudoers文件语法(必须用visudo编辑)
    visudo
    # 确保sudoers文件权限为440
    chmod 440 /etc/sudoers

8.6 开机进入emergency紧急模式

  • 故障原因:fstab挂载错误、磁盘分区损坏、根文件系统挂载失败

  • 解决方案

    bash 复制代码
    # 紧急模式下重新挂载根目录为读写
    mount -o remount,rw /
    # 注释/etc/fstab中错误的挂载条目
    vi /etc/fstab
    # 测试挂载配置
    mount -a
    # 修复磁盘文件系统后重启
    fsck /dev/分区名
    reboot

8.7 打开文件数过多(too many open files)

  • 故障原因:系统/进程最大文件句柄数配置过低、长连接未释放

  • 解决方案

    bash 复制代码
    # 修改系统全局文件句柄限制
    vi /etc/security/limits.conf
    # 添加以下配置(*代表所有用户)
    * soft nofile 65535
    * hard nofile 65535
    # 重启服务生效
    systemctl restart 服务名

8.8 系统时间/时区异常

  • 故障影响:证书失效、定时任务错乱、日志时间错误

  • 解决方案

    bash 复制代码
    # 同步时区为上海
    timedatectl set-timezone Asia/Shanghai
    # 开启NTP时间同步
    systemctl start ntpd
    systemctl enable ntpd

九、运维常备排查命令速查表

排查维度 核心命令 用途
系统状态 uptimefree -hdf -hdf -i 快速查看系统负载、内存、磁盘空间
进程资源 topiotopmpstatperf top 定位高CPU/IO/内存进程
网络排查 ip aip rss -tulnppingmtr 网卡、路由、端口、连通性排查
日志排查 journalctl -xetail -f /var/log/messages 系统、服务报错日志查看
文件磁盘 du -shlsoffsckmount 大文件查找、句柄残留、文件系统修复

需要我把这份清单整理成可直接复制的一键排查脚本 ,并按CentOS Stream 9环境适配吗?

相关推荐
深圳市爱派派智能科技有限公司1 小时前
“进迭时空 RISC-V 集群服务器 CSB1-N10SPK3:10 节点 K3,600 TOPS 绿色算力“
运维·服务器·risc-v·k3·进迭时空·集群服务器
QWEDDRFTG1 小时前
机房供电安全
服务器
极客先躯1 小时前
高级java每日一道面试题-2026年05月11日-实战篇[Docker]-如何容器化金融产品推荐系统?
java·运维·docker·容器·金融·高级面试·金融产品推荐系统
小泊客1 小时前
友善R5C刷OpenWrt后RTL8822CE无线网卡显示“禁用”或“未激活”的完整解决方案
linux·github·运维开发
nvd111 小时前
GCP L4 Passthrough 负载均衡器“假死超时”深度排查复盘
运维·php·负载均衡
mounter6251 小时前
跨内核实时更新:如何实现 hugetlbfs 巨页的无缝保留与恢复?
linux·linux kernel·kernel·kexec·liveupdate·kho
qeen872 小时前
【Linux】make/Makefile 自动化工具的介绍
linux·运维·服务器·自动化
朱容zr3331332 小时前
为什么推荐使用自增主键?使用UUID作为主键的优缺点是什么?
java·运维·数据库·后端·mysql·面试·性能优化
HXDGCL2 小时前
东莞市华创力科技:专业环形导轨工厂,助力自动化产线升级
运维·科技·自动化