Skip to content

02 · 进阶命令与排查 ​

从"会用命令"到"能定位问题"的分水岭。这一章的命令多数不是拿来背的,而是出事时按顺序排下来。

小节规划 ​

小节内容状态
文本三剑客 grep / sed / awk过滤、替换、列统计的真实用法与输出解读已写
xargs 与并行为什么管道接 xargs 会炸、-P 并行、-0 处理带空格文件名已写
journalctl 日志按服务/时间/优先级取日志,--since 的时区坑已写
strace / ltrace进程卡住时看它在等哪个系统调用已写
性能四件套vmstat / iostat / sar / pidstat 各看什么、怎么联读已写
ss 与 tcpdumpTIME_WAIT 堆积、抓包过滤表达式、连接被谁重置已写
Shell 编程规范set -euo pipefail、数组、函数、退出码判断已写
CPU 100% 定位从 top 到线程栈到代码行的完整链路已写
内存与负载排查OOM killer 日志、si/so 中断、D 状态进程已写

排查起手式 ​

问题现场先跑这一组,把基线数据留住再动手:

bash
uptime                          # 负载趋势(1/5/15 分钟)
dmesg -T | tail -50             # 内核有没有 OOM、磁盘报错
vmstat 1 5                      # r 队列、si/so、us/sy/wa 占比
iostat -xz 1 3                  # 哪块盘 %util 高、await 多少
top -b -n 1 | head -20          # 前几名进程快照
ss -s                           # 连接数总览(TIME_WAIT/CLOSE_WAIT)
df -h; df -i                    # 空间和 inode 双确认