Linux常用运维命令整理:排障时真正用得上的是哪几条

2026-10-01 19:26 1012 次浏览

告警响了,第一反应是登录服务器看情况。这时候脑子里能立刻调出来的命令,才是真正有用的命令。平时整理得再全,关键时刻想不起来,等于没整理。

下面按排障场景分组。每组给最常用的参数,不追求覆盖全部选项——选项可以查手册,思路查不了。

先看整体:CPU、内存、磁盘三条线

登录后先跑 top,看负载和占用最高的进程。重点看 load average 三个数值,分别是1分钟、5分钟、15分钟的平均负载。如果1分钟很高但15分钟正常,说明是突发;三个都高,说明持续压力。

内存用 free -m 看,单位是MB,比默认的KB直观。重点看 available 这一列,不是 free。free 低不代表有问题,缓存占着内存是正常的。

磁盘用 df -h,一眼能看出哪个分区满了。满了之后再用 du -sh * 逐层找大目录。这两个命令配合,定位磁盘占用很快。

IO 方面用 iostat -x 1,看 %util 和 await。这两个值高,说明磁盘是瓶颈,加CPU没用。

日志排障:tail 和 grep 是主力

看实时日志用 tail -f。日志刷得太快,就加管道过滤:tail -f app.log | grep ERROR。这样只显示错误行,其他都过滤掉。

查历史日志用 grep 加时间范围。比如 grep "2026-03-15 10:" app.log 能把那个小时的行全捞出来。配合 -n 显示行号,-c 只统计条数。

日志文件太大,用 less 打开再按 / 搜索,比 cat 全量输出强。less 里按 G 到末尾,按 g 回开头,上下键翻页,退出按 q。

按我的经验,排障时间有一半花在日志上。把 tail、grep、less 这三个练熟,效率提升很明显。

进程和端口:定位服务起没起来

进程用 ps aux | grep 服务名。看到进程在,不代表服务正常,还得看端口。

端口用 ss -tlnp,比老命令 netstat 快,输出也清晰。-t 是TCP,-l 是监听状态,-n 显示端口号不解析服务名,-p 显示进程。这四个参数一起用,能看出哪个进程占了哪个端口。

服务起不来的排查顺序我一般是这样:先 ps 看进程在不在,不在就看日志报什么错;进程在但端口没监听,多半是配置里绑定地址或端口写错了;端口在但连不上,检查防火墙规则。

防火墙用 firewall-cmd --list-all 或 iptables -L -n 看规则。规则改完要重载,很多人改完忘了这一步,以为没生效。

排障环境本身也要稳。如果服务器负载高到自己都登录困难,那排查就无从谈起。香港自营物理服务器(50M)⑦(金牌6138*2 / 64核80线程 / 64G / 50M / 月付 ¥3050.00)这类配置留给重负载业务用,配置详情在这里。练习和轻量业务用普通机器就够。

几个容易忽略但很实用的命令

history 查自己敲过的命令,配合 !编号 可以重跑。Ctrl+R 反向搜索历史命令,比翻历史快得多。

find 按时间找文件:find /var/log -mtime -1 找一天内改过的。清理临时文件、定位最近变动的配置都用得上。

lsof -i :端口 看谁占着这个端口,比 ss 更细。文件被占用删不掉的时候,lsof 文件名 能查出是哪个进程。

这些命令不用全记。先记住 top、df、tail -f、grep、ss、ps 这六条,覆盖日常排障大半场景。剩下的遇到再查,查完记下来,慢慢就成自己的工具库了。