运维常用工具手册
一套按"工具"拆分的运维手册,一个工具一篇,共 66 篇,分 12 个场景分类。
与同目录《XX 常用运维指令手册》互补:那边按系统/数据库组织讲"这台机器怎么管",这边按工具组织讲"这件事用什么干、参数怎么调、坑在哪"。
怎么用
- 不知道用什么工具 → 看下面的问题 → 工具。
- 知道工具、忘了参数 → 直接翻到对应文件,末尾都有速查表。
- 怀疑某台机器有问题 → 先按三分钟排障路径走一遍,再钻进具体工具。
每篇统一结构:它解决什么问题 → 安装与版本 → 核心用法 → 输出怎么读 → 实战场景 → 常见坑 → 速查表。
分类索引
01 系统监控与性能(8 篇)
| 工具 |
一句话定位 |
典型场景 |
| top |
系统卡了第一个敲的命令 |
看负载、找吃 CPU 的进程 |
| htop |
top 的可视化增强版 |
树状看进程、交互杀进程 |
| vmstat |
一句话判断瓶颈在 CPU/内存/IO |
负载高但 CPU 空闲 |
| iostat |
磁盘 IO 的压力表 |
%util 打满、await 飙高 |
| sar |
事后回放,唯一能看"昨天"的工具 |
故障已恢复,要复盘 |
| pidstat |
按进程维度看 CPU/内存/IO/上下文切换 |
定位到具体进程 |
| iotop |
谁在读写磁盘 |
磁盘忙但不知道是谁 |
| glances |
一个界面看全部 + 远程模式 |
单机巡检、跨机汇总 |
02 进程与网络诊断(10 篇)
| 工具 |
一句话定位 |
典型场景 |
| ps |
进程快照,脚本里的主力 |
查进程父子关系、启动参数 |
| strace |
看进程到底在跟内核要什么 |
进程卡死、文件找不到 |
| lsof |
谁占着这个文件/端口 |
端口占用、文件已删不释放 |
| ss |
netstat 的现代替代 |
连接数统计、TIME_WAIT 排查 |
| tcpdump |
抓包,网络的终极证据 |
抓不到包 = 包没到 |
| nethogs |
按进程看实时带宽 |
带宽被打满,找凶手 |
| mtr |
ping + traceroute 合体 |
判断丢包发生在哪一跳 |
| dig |
DNS 权威查询 |
解析不对、TTL、多线路 |
| nmap |
端口与服务探测 |
资产梳理、验证防火墙 |
| nc / socat |
网络界的瑞士军刀 |
连通性测试、临时传文件 |
03 文件与传输(7 篇)
| 工具 |
一句话定位 |
典型场景 |
| rsync |
增量同步的事实标准 |
迁移、备份、发布 |
| scp / sftp |
跨机拷文件的最短路径 |
临时传包、批量拉日志 |
| curl |
命令行里的 HTTP 客户端 |
接口验证、探测、上传 |
| wget |
下载与镜像 |
断点续传、整站抓取 |
| rclone |
云存储统一的 rsync |
对象存储备份、跨云迁移 |
| tar |
打包与解包 |
备份、交付、保留权限 |
| find |
按条件找文件并直接处理 |
清理大文件、批量改权限 |
04 文本处理(6 篇)
| 工具 |
一句话定位 |
典型场景 |
| grep |
从海量日志里捞一行 |
日志检索、上下文定位 |
| sed |
流式替换与删除 |
批量改配置、去注释 |
| awk |
按列做统计的语言 |
求和、分组计数、取字段 |
| jq |
JSON 的 sed + awk |
解析 API/配置返回值 |
| yq |
YAML 的 jq |
改 K8s/Ansible 配置 |
| tmux |
会话保持,断线不丢活 |
长时间任务、协同排障 |
05 服务与计划任务(4 篇)
06 容器与编排(6 篇)
07 自动化与版本(4 篇)
08 数据库工具(5 篇)
09 日志与监控(6 篇)
10 压测与基准(4 篇)
| 工具 |
一句话定位 |
典型场景 |
| ab |
最简单的 HTTP 压测 |
快速摸接口上限 |
| wrk |
高并发 HTTP 压测 |
上万 QPS、长连接 |
| fio |
磁盘 IO 基准 |
验证云盘真实 IOPS |
| iperf3 |
网络带宽基准 |
验证专线/内网带宽 |
11 安全与审计(3 篇)
12 隧道与高可用(3 篇)
| 工具 |
一句话定位 |
典型场景 |
| ssh 隧道 |
不装软件打通内网 |
临时跳板、本地转发 |
| frp |
内网穿透 |
无公网 IP 暴露服务 |
| nginx |
反向代理与七层负载 |
灰度、限流、TLS 卸载 |
问题 → 工具决策表
| 现象 |
先看 |
再看 |
| 系统很卡,但不知道卡在哪 |
top、uptime |
vmstat 1、pidstat 1 |
| 负载高但 CPU 空闲 |
vmstat(看 b、wa) |
iostat -x 1、iotop |
| 磁盘 IO 打满 |
iostat -x 1 |
pidstat -d 1、iotop -o |
| 内存不够 / OOM |
free -h、dmesg -T | grep -i oom |
ps aux --sort=-%mem、smem |
| 网络慢、丢包 |
mtr、ping |
tcpdump、ss -s、ethtool -S |
| 端口不通 |
ss -lntp |
nc -zv、tcpdump、firewall-cmd --list-all |
| 带宽被打满 |
nethogs、iftop |
ss -tnp、tcpdump |
| 域名解析异常 |
dig +trace |
cat /etc/resolv.conf、nscd/systemd-resolved |
| 服务起不来 |
systemctl status |
journalctl -u xxx -n 100 --no-pager |
| 进程卡死不动 |
strace -p、cat /proc/PID/stack |
gdb -p、perf top |
| 文件被删但空间没释放 |
lsof | grep deleted |
重启/清空对应进程句柄 |
| 找不到哪个进程占文件 |
lsof /path、fuser -v |
lsof -i :port |
| 定时任务没执行 |
crontab -l、systemctl status crond |
/var/log/cron、journalctl -u crond |
| 日志把磁盘写满 |
du -sh /var/log/* |
logrotate -d、journalctl --vacuum-size |
| 容器/ Pod 异常 |
docker ps -a、kubectl describe pod |
crictl ps、kubectl logs --previous |
| 证书要到期 |
openssl x509 -enddate |
echo | openssl s_client -connect |
| 要复盘昨天的事故 |
sar -f /var/log/sa/saXX |
journalctl --since、dmesg -T |
三分钟排障路径
# 1. 宏观:谁在忙(CPU / 内存 / IO / 网络)
uptime; free -h; vmstat 1 3
# 2. 定位到进程
ps -eo pid,ppid,pcpu,pmem,rss,stat,etime,cmd --sort=-pcpu | head -15
# 3. 定位到系统调用或文件
lsof -p <PID> | tail -20
strace -f -p <PID> -T -e trace=network,file -s 200
# 4. 留证据(复盘用)
sar -u -d -n DEV 1 60 > /tmp/sar_$(date +%F_%H%M).txt
顺序不能反:先看全局再钻进程,先看现象再抓现场。上来就 strace 容易把自己绕进去。
通用约定
$ 普通用户,# root 或 sudo,<xxx> 为占位符。
- 标注 ⚠️ 的是危险操作,生产执行前先
--dry-run 或备份。
- 命令默认 Linux(glibc、systemd),Alpine / 信创系统的差异在各篇"常见坑"里单独说明。
- 工具版本以 2024 年后的稳定版为基准;老版本缺参数时会标注"需 xx 以上"。
环境速装
# Debian / Ubuntu
apt install -y procps sysstat htop iotop iftop nethogs lsof strace tcpdump \
dnsutils mtr-tiny nmap netcat-openbsd rsync curl wget jq tree tmux lnav \
fio iperf3 apache2-utils sysbench
# RHEL / CentOS / openEuler / 麒麟
dnf install -y procps-ng sysstat htop iotop iftop nethogs lsof strace tcpdump \
bind-utils mtr nmap nmap-ncat rsync curl wget jq tree tmux lnav fio iperf3 httpd-tools
生产环境装包前先确认源可用、磁盘余量、是否需要过变更评审。nmap、nethogs 在部分合规环境属于敏感工具,按需安装。
与现有手册的关系
| 需求 |
翻哪套 |
| 这台 CentOS 的网卡怎么配、SELinux 怎么调 |
《CentOS 7-10 常规运维指令手册》 |
tcpdump 的过滤器怎么写、怎么读输出 |
本手册 02 分类 |
| MySQL 的复制怎么搭 |
《MySQL 常用运维指令手册》 |
mysqldump 参数怎么选、怎么加速 |
本手册 08 分类 |
| 国产系统的包管理差异 |
《国产操作系统运维指令手册》 |
在麒麟上装 htop 报依赖错 |
本手册对应工具篇的"常见坑" |
扩展计划
后续可按需增补:k9s、kubectx、helmfile、argocd、vector、victoriametrics、loki、skywalking、ebpf 系(bcc、bpftrace)、nftables、wireguard、keepalived、haproxy、gitlab-runner、jenkins、saltstack、puppet、cmdb 对接脚本。