运维常用工具手册

运维工具手册 7.8 KB 原文

运维常用工具手册

一套按"工具"拆分的运维手册,一个工具一篇,共 66 篇,分 12 个场景分类。 与同目录《XX 常用运维指令手册》互补:那边按系统/数据库组织讲"这台机器怎么管",这边按工具组织讲"这件事用什么干、参数怎么调、坑在哪"。

怎么用

  1. 不知道用什么工具 → 看下面的问题 → 工具。
  2. 知道工具、忘了参数 → 直接翻到对应文件,末尾都有速查表。
  3. 怀疑某台机器有问题 → 先按三分钟排障路径走一遍,再钻进具体工具。

每篇统一结构:它解决什么问题 → 安装与版本 → 核心用法 → 输出怎么读 → 实战场景 → 常见坑 → 速查表。

分类索引

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 篇)

工具 一句话定位 典型场景
systemctl systemd 的总开关 启停、开机自启、失败重试
journalctl systemd 统一日志入口 服务为什么起不来
crontab 定时任务的默认答案 备份、清理、巡检脚本
supervisor 非 systemd 场景的进程守护 老系统、容器内守护脚本

06 容器与编排(6 篇)

工具 一句话定位 典型场景
docker 容器运行时日常操作 起停、日志、进容器、清空间
docker-compose 单机多容器编排 一套环境一键拉起
podman 无守护进程的容器引擎 信创/免 root 环境替代 docker
crictl K8s 节点上排查容器的刀 节点上捞容器日志、进容器
kubectl K8s 的命令行 排障、扩缩容、看事件
helm K8s 的包管理 部署、升级、回滚、改值

07 自动化与版本(4 篇)

工具 一句话定位 典型场景
ansible 无 agent 的批量执行 百台机器同时改配置
terraform 基础设施即代码 云资源与状态管理
git 配置与脚本的版本控制 回滚、追溯、协作
ssh-keygen 密钥与 SSH 加固 免密登录、跳板机

08 数据库工具(5 篇)

工具 一句话定位 典型场景
mysql 客户端 MySQL 交互与批量执行 查状态、导数据、看锁
mysqldump 逻辑备份与迁移 单库备份、跨版本迁移
redis-cli Redis 操作与排障 大 key、慢查询、内存
psql / pg_dump PostgreSQL 交互与备份 查活动会话、逻辑备份
percona-toolkit MySQL 高级诊断与在线变更 慢日志分析、在线加索引

09 日志与监控(6 篇)

工具 一句话定位 典型场景
logrotate 日志切割与清理 磁盘被日志写满
lnav 终端里的日志分析器 多文件关联、按时间跳转
goaccess Nginx 访问日志实时分析 看 QPS、TOP URL、状态码
prometheus 指标采集与查询 自建监控、PromQL 排障
grafana 可视化与告警面板 出图、配告警
zabbix 传统主机监控体系 大范围主机+网络设备监控

10 压测与基准(4 篇)

工具 一句话定位 典型场景
ab 最简单的 HTTP 压测 快速摸接口上限
wrk 高并发 HTTP 压测 上万 QPS、长连接
fio 磁盘 IO 基准 验证云盘真实 IOPS
iperf3 网络带宽基准 验证专线/内网带宽

11 安全与审计(3 篇)

工具 一句话定位 典型场景
openssl 证书与加密的全能工具 查证书到期、自签、加解密
fail2ban 暴力破解自动封禁 SSH 被扫、防爆破
auditd 内核级操作审计 等保合规、追查谁改了文件

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 对接脚本。