linux Roadmap

Linux 排障专题

Linux 排障专题:把 systemd 服务管理、磁盘和内存告警、CPU load、端口占用、SSH 免密登录、journalctl 日志和文件权限等服务器现场问题串成一条从资源到配置的完整排障路径。

服务器出问题先按资源、进程、端口、日志、权限五步顺序采集证据,避免上来就 restart 服务或改配置,把小故障做成大事故;确认根因后再决定是否修改持久化配置与准备回滚方案。

linuxsystemdsshjournalctl端口磁盘CPU
排障 / 命令26
精选入口4
工具 / 速查10
最近更新2026-07-01

Troubleshooting Path

推荐排障路线图

提交问题 →
  1. 01

    先看资源是否打满

    用 df、free、top、uptime 判断磁盘、内存、CPU 和 load,避免先改服务配置。

  2. 02

    再定位进程和端口

    用 ps、ss、lsof 找到监听端口、占用进程和异常父子进程关系。

  3. 03

    继续读 systemd 与应用日志

    用 systemctl status 和 journalctl 锁定启动失败、权限错误和退出码。

  4. 04

    最后处理权限与持久化配置

    确认用户、目录权限、LimitNOFILE、开机启动和回滚方案。

Before You Change

执行前检查

  • 先复制只读诊断命令
  • 涉及 systemctl restart 前确认影响范围
  • 清理磁盘前确认文件归属和备份
  • 修改 /etc 配置后记录回滚命令

Start Here

优先阅读

Cheatsheets

相关速查表

速查

Linux 排障命令速查表

Linux 服务器排障命令一页速查:top/ps 进程负载、ss/lsof 端口连接、df/du/free 磁盘内存、journalctl/dmesg 日志与 OOM 定位,服务器现场按现象选组快速采集证据。

速查

Vim 常用操作速查表

Vim 常用操作一页速查:hjkl/gg/G/w/b 光标移动、i/o/dd/yy/p/u 编辑与撤销、/word 和 :%s/old/new/g 查找替换、v/V/Ctrl-v 可视模式、:wq/:q!/:w !sudo tee % 保存退出,服务器改配置卡壳时直接查。

速查

SSH 连接与配置速查表

SSH 连接与配置一页速查:ssh -i/-p/-vvv 登录调试、ssh-keygen 与 ssh-copy-id 密钥管理、~/.ssh/config 别名与 ProxyJump 跳板、-L/-R/-D 端口转发与 SOCKS 代理,免密登录和开隧道直接对照。

速查

systemd 服务管理速查表

systemd 服务管理一页速查:systemctl start/stop/reload/enable 启停自启、status/is-active/list-units 状态查看、journalctl -u/-f/-p err/--since 日志过滤,以及 timer 定时任务替代 crontab 的用法。

速查

Cron 表达式速查表

Cron 表达式一页速查:分/时/日/月/周 5 段格式说明、每 5 分钟与工作日等常用示例、*/N 与 A-B/A,B,C 特殊符号、@reboot/@daily/@hourly 时间宏,以及 PATH 与输出重定向等踩坑要点。

速查

tmux 终端复用速查表

tmux 常用操作一页速查:会话管理、窗口和窗格操作、复制模式、自定义配置和常见排障场景,覆盖远程开发保持会话不丢失等高频需求。

速查

sed / awk / grep 文本处理速查表

Linux 文本三剑客 sed、awk、grep 常用命令一页速查:正则匹配、替换、提取列、统计和批量处理等 30+ 高频操作,含关键参数说明与典型排障场景示例。

Latest Updates

最近更新

All Runbooks

全部相关内容

排障

crontab 定时任务不执行的常见原因

crontab 定时任务到点不执行时,先看 /var/log/cron 或 syslog 确认任务是否触发,再确认 crond 服务状态、命令绝对路径、cron 最小 PATH 环境变量、脚本执行权限和 SHELL 差异等常见根因。

crontabcronlinux
排障

hosts 文件修改不生效排查

修改 /etc/hosts 或 Windows hosts 文件后域名解析未生效时,用 getent hosts 或 ping 验证系统是否读取,Linux 重启 nscd/systemd-resolved、Windows 执行 ipconfig /flushdns 刷新缓存,浏览器可能启用 DoH 绕过 hosts 需要单独关闭。

hostsdnsnetwork
排障

Linux CPU 和 Load Average 过高排查流程

Linux 机器出现 load average 高、top us/sy/wa 异常时,先区分 CPU 使用率高还是 Load 高——CPU 高用 top -H 和 pidstat 找线程,Load 高 CPU 却低就查 iowait、D 状态进程和 steal time,避免盲目重启掩盖真实瓶颈。

linuxcpuload
排障

Linux 磁盘占满排查与安全清理

Linux 报 No space left on device 或磁盘占满时,用 df -hT 定位具体挂载点,du --max-depth 逐层找大目录,journalctl --disk-usage 和 docker system df 排查日志/镜像占用,lsof +L1 找已删除但仍被进程持有的文件释放空间。

linuxdiskdu
排障

Linux OOM Killer 与内存不足排查

Linux 进程被 OOM Killer 杀、容器状态 OOMKilled 或 dmesg 出现 Out of memory: Killed process 时,用 dmesg -T 与 journalctl -k 查历史内核日志确认时间和被杀进程,区分宿主机 OOM 与容器 cgroup 限制,再看进程 RSS 增长趋势排查泄漏。

linuxmemoryoom
排障

Linux 查看 TCP 连接数与状态

Linux 服务器需要统计 TCP 连接总数、状态分布或排查 TIME_WAIT/CLOSE_WAIT 堆积时,用 ss -s 看总览,ss -tan 按状态分组统计,netstat 和 /proc/net/tcp 交叉验证,ss 从 netlink 读取比 netstat 更快也更全。

linuxtcpnetwork
排障

Node.js EADDRINUSE 端口被占用排查

Node.js 启动服务报 Error: listen EADDRINUSE: address already in use :::3000 时,用 lsof -iTCP:3000 -sTCP:LISTEN 或 ss -lntp 找到占用进程 PID,判断是自己的僵尸进程还是其他服务,再决定 kill 释放端口还是通过 PORT 环境变量换端口。

nodeeaddrinuseport
排障

SSH Permission denied (publickey) 排查流程

ssh 或 git 拉代码报 Permission denied (publickey) 时,先用 ssh -vvv 看客户端提交了哪把 key 和服务端 Authentications that can continue,再核对 authorized_keys 内容、~/.ssh 目录 700 与 authorized_keys 600 权限,云服务器还要检查 sshd_config 和安全组。

sshpublickey权限
排障

systemd 服务启动失败排查流程

systemctl 启动服务后 status 显示 failed、exit-code 或 status=203/EXEC 时,用 journalctl -u <service> -n 200 读取完整错误,检查 ExecStart 是否绝对路径、WorkingDirectory 是否存在且服务用户有权限,改 unit 后必须 daemon-reload。

systemdlinuxjournalctl
排障

systemd timer 定时任务不执行排查

systemd timer 到点不触发或触发了但任务没跑时,用 systemctl list-timers --all 查看 NEXT/LAST,确认 timer 是否 enable 且 active,systemd-analyze calendar 校验 OnCalendar 表达式与时区,再用 journalctl -u <service> 看同名 service 的实际执行日志和退出码。

systemdtimercron
排障

Too many open files 文件句柄耗尽排查

应用日志出现 Too many open files (EMFILE) 时,用 cat /proc/<pid>/limits 看 Max open files,ls /proc/<pid>/fd | wc -l 统计已打开数,lsof -p 按 socket/日志/deleted 文件分类找泄漏点,systemd 服务需要在 unit 里设 LimitNOFILE 并 daemon-reload。

linuxulimitnofile
命令

chmod 文件权限命令

使用 chmod 修改 Linux 文件权限的常用命令,数字模式 755 等于 rwxr-xr-x,字母模式 u+x/g-w 按用户/组/其他加减权限,chmod -R 递归修改目录,chmod --reference 复制参考文件权限,目录必须有 x 权限才能进入。

chmodlinux权限
命令

crontab 定时任务命令

crontab 定时任务日常管理命令,crontab -e 编辑当前用户任务、-l 查看列表、-r 删除全部,crontab -u 管理指定用户任务,配合 cron 表达式「分 时 日 月 周 命令」和 @reboot/@daily 别名,systemctl status crond 检查服务状态。

crontabcronlinux
命令

find 查找文件命令

Linux find 查找文件的常用命令,find -name/-type 按名称和类型过滤、-size +100M 查大文件、-mtime -7 按修改时间查最近变更、-maxdepth 限制递归深度、-exec 或 xargs 对结果批量执行命令。

findlinux文件
命令

Git 配置和取消代理命令

Git 配置和取消 HTTP/HTTPS/SOCKS5 代理的常用命令,git config --show-origin --get-regexp proxy 找出代理配置来自 system/global/local 哪一级,http.proxy 只影响 HTTP 仓库,SSH 仓库需要单独配置 ssh ProxyCommand 或 IdentityFile。

gitproxyconfig
命令

journalctl 查看服务日志命令

journalctl 查看 systemd 服务日志的常用命令,journalctl -u <service> -n 200 --no-pager 看近期错误,-f 实时跟踪,--since/--until 按时间窗过滤,-p warning..alert 按优先级过滤,--disk-usage 查看日志占用与 vacuum 清理。

journalctlsystemdlogs
命令

Linux 查看端口占用命令

Linux 查看端口占用与监听进程的常用命令,ss -lntp 快速列出所有 TCP 监听端口和 PID/进程名,lsof -iTCP:8080 -sTCP:LISTEN 定位具体进程,fuser 也可查端口,新系统优先用 ss 替代 netstat。

linux端口ss
命令

Linux 查看磁盘空间和大文件命令

Linux 排查磁盘空间占用的常用命令,df -hT 定位满的挂载点,du --max-depth=1 | sort -h 逐层缩小大目录,find -size +500M 找单个大文件,du 与 df 不一致时用 lsof +L1 查已删除但仍被进程持有的文件。

linuxdiskdf
命令

lsof 查看文件句柄和端口命令

lsof 查看文件句柄、端口和网络连接占用的常用命令,lsof -iTCP:8080 -sTCP:LISTEN 找端口监听进程、lsof -p <pid> 查进程打开的所有文件、+D 递归扫描目录、+L1 找已删除但仍被打开的文件,配合 /proc/<pid>/limits 判断 nofile 限制。

lsoflinuxfd
命令

ps 查看进程和资源占用命令

Linux ps 查看进程静态快照的常用命令,ps aux --sort=-%cpu/-%mem 按 CPU 或内存排序找可疑进程,ps -ef | grep 按名称过滤,ps -o pid,ppid,stat,etime,cmd 查父子进程和状态,pstree -ap 展示进程树,动态观测配合 top/pidstat。

psprocesslinux
命令

sed 文本替换命令

Linux sed 文本替换的常用命令,sed 's/old/new/g' 全局替换(先不加 -i 预览),sed -i 原地修改文件、-i.bak 自动备份,sed -n '10,20p' 按行号预览,sed '/^#/d' 删除匹配行,批量改配置前务必先预览。

sedlinux文本
命令

SSH 生成密钥和分发公钥命令

SSH 生成密钥与分发公钥的常用命令,ssh-keygen -t ed25519 生成推荐算法密钥,ssh-copy-id 一键分发公钥到 authorized_keys,配合 ~/.ssh 700、authorized_keys 600 权限,多账号在 ~/.ssh/config 里用 Host + IdentityFile 区分。

sshkeygenauthorized_keys
命令

systemctl 管理服务常用命令

systemctl 管理 Linux systemd 服务的常用命令,systemctl status 查看服务状态与最近错误、start/stop/restart 控制服务、enable --now 一键开机自启并启动、reload 平滑加载配置,失败时立即 journalctl -u <service> 看详细日志。

systemctlsystemdlinux
命令

systemd timer 定时任务常用命令

systemd timer 定时任务的常用管理命令,systemctl list-timers --all 看所有 timer 的 LAST/NEXT,systemctl status backup.timer/backup.service 分别查触发器与业务日志,systemd-analyze calendar 校验 OnCalendar 表达式,systemctl start 手动触发复现。

systemdtimercommand
命令

tar 压缩解压常用命令

Linux tar 打包压缩解压的常用命令,tar -czf 用 gzip 压缩、--zstd 用 zstd 平衡速度与压缩率,解压前先 tar -tf 查看包内路径避免污染当前目录,-C 指定解压目录,--numeric-owner 迁移系统文件时保留 UID/GID。

tarlinuxarchive
命令

tcpdump 抓包命令

Linux tcpdump 抓包排查网络问题的常用命令,tcpdump -i eth0 -nn 不解析主机名和端口名减少延迟,port 80/host 过滤按端口或 IP 抓包,-w capture.pcap 保存文件后用 Wireshark 分析,权限不够用 sudo 或 setcap cap_net_raw。

tcpdumpnetwork抓包