【LINUX命令】排障时最常被忽略的五个命令组合
奇妙的LINUX世界 · 作者 数码阿伟 · 2026-10-11
修东西的时候,光会 `ping` 和 `ls` 不够。这五个组合是我在实际干活里最常用、但很多人不知道的。
---
## 一、`ss -tnp`:看谁在占端口
比 `netstat` 快,比 `lsof` 直观。
```bash
ss -tnlp # 看监听端口 + 进程
ss -tnp | grep 80 # 谁占了 80
```
**什么时候用**:服务起不来,提示端口被占用。
## 二、`journalctl -xe -u 服务名`:只看这一个服务的日志
```bash
journalctl -xe -u nginx --since "10 min ago"
```
**什么时候用**:服务起不来又看不懂满屏日志。
## 三、`dmesg -T`:硬件层发生了什么
```bash
dmesg -T | tail -50
```
**什么时候用**:
- USB 设备插上没反应
- 硬盘掉了
- 网卡掉了
**关键**:`-T` 把时间戳转成可读时间,不加的话是一堆数字。
## 四、`lsof +D 目录`:谁在动这个目录
```bash
lsof +D /data
```
**什么时候用**:`umount` 提示 device busy,找不到是谁占着。
## 五、`iotop -o` + `iostat -x 1`:磁盘到底卡在哪
```bash
iotop -o # 只看真正在 IO 的进程
iostat -x 1 # 看 %util 和 await
```
**什么时候用**:机器卡得要死,但 CPU 不高——八成是 IO 卡了。
---
## 一个真实案例
客户的内网服务器"特别卡",CPU 才 20%。
我上去:
1. `top` —— CPU 不高
2. `iostat -x 1` —— **%util 99%,await 300ms**
3. `iotop -o` —— 一个备份进程在狂写
停掉备份,立刻恢复。
**一句话**:CPU 不高但机器卡,先查 IO,别瞎猜。
---
## 一、`ss -tnp`:看谁在占端口
比 `netstat` 快,比 `lsof` 直观。
```bash
ss -tnlp # 看监听端口 + 进程
ss -tnp | grep 80 # 谁占了 80
```
**什么时候用**:服务起不来,提示端口被占用。
## 二、`journalctl -xe -u 服务名`:只看这一个服务的日志
```bash
journalctl -xe -u nginx --since "10 min ago"
```
**什么时候用**:服务起不来又看不懂满屏日志。
## 三、`dmesg -T`:硬件层发生了什么
```bash
dmesg -T | tail -50
```
**什么时候用**:
- USB 设备插上没反应
- 硬盘掉了
- 网卡掉了
**关键**:`-T` 把时间戳转成可读时间,不加的话是一堆数字。
## 四、`lsof +D 目录`:谁在动这个目录
```bash
lsof +D /data
```
**什么时候用**:`umount` 提示 device busy,找不到是谁占着。
## 五、`iotop -o` + `iostat -x 1`:磁盘到底卡在哪
```bash
iotop -o # 只看真正在 IO 的进程
iostat -x 1 # 看 %util 和 await
```
**什么时候用**:机器卡得要死,但 CPU 不高——八成是 IO 卡了。
---
## 一个真实案例
客户的内网服务器"特别卡",CPU 才 20%。
我上去:
1. `top` —— CPU 不高
2. `iostat -x 1` —— **%util 99%,await 300ms**
3. `iotop -o` —— 一个备份进程在狂写
停掉备份,立刻恢复。
**一句话**:CPU 不高但机器卡,先查 IO,别瞎猜。
最新回复
民珍技术组:dmesg -T 这个参数太实用了,以前一直看原始时间戳很头疼。
县城小维修:收藏了,这几个组合确实很多人不知道。