系统与内核基础
发行版差异、systemd 单元与依赖、内核参数调优、文件系统选型与 IO 调度器的实际表现。
Linux · 云主机 · 容器 · 排障
一台云主机、一台旧笔记本、几十个被反复重装的环境。这里按主题记下系统与云端运维里踩过的坑、验证过的命令,以及那些当时看不懂、后来终于想通的原理。写下来的前提只有一个:能再跑一遍。
WHAT GOES IN, WHAT STAYS OUT
起因很简单:同一个 Permission denied 在一年里踩了三次,每次都要从头查一遍。于是把折腾过程固定写下来,条目按主题归档,命令标注发行版与内核版本,结论只保留自己实测过的部分。
内容主要来自三类场景:本地虚拟机里做破坏性实验、云上小规格实例做长期观察、帮人排障时的现场记录。凡是当场没查清、事后也没能复现的问题,宁可留在草稿里,也不写成结论。
FIVE TRACKS
笔记按五条线并行推进,每条线都有独立的目录与速查页,遇到跨主题的问题再互相引用。
发行版差异、systemd 单元与依赖、内核参数调优、文件系统选型与 IO 调度器的实际表现。
云盘挂载与在线扩容、快照与回滚、安全组规则梳理、实例规格与带宽对服务的影响。
镜像瘦身、namespace 与 cgroup 观察、compose 编排、日志收集与资源限制的边界。
路由与转发、DNS 解析链路、tcpdump 抓包、连接状态与超时问题的定位顺序。
Shell 与 Python 小工具、批量巡检、定时任务、配置收敛,够用就好,不堆框架。
RECENT ENTRIES
按时间倒序的更新轨迹,每条都是一次完整的问题闭环。
把 systemd 服务排障整理成一份检查清单:从 unit 状态一路查到 cgroup 资源占用,顺序固定下来后,同类问题的定位时间从半天缩短到十几分钟。
云盘扩容后文件系统未同步的问题复现了三次,写下完整的在线扩容步骤与回滚方法,重点标出了每台机器都必须先确认的挂载点。
用 tcpdump 定位了一次容器内 DNS 解析超时,从 resolv.conf 到上游递归服务器的链路逐段验证,最后确认是转发顺序配置造成的。
开始按主题归档零散笔记,删掉了大量无法复现的旧条目。数量少了,能用的反而多了。
在旧笔记本上搭起本地实验环境,所有破坏性操作先在这里跑一遍,再考虑是否上云验证。
COMMANDS I KEEP FORGETTING
高频使用、又总是记不牢的一批命令,随手放在这里,比翻历史记录快。
| 命令 | 用途 |
|---|---|
systemctl status -l UNIT |
查看单元完整状态与最近失败原因 |
journalctl -u UNIT -n 200 --no-pager |
按单元过滤日志,不做分页输出 |
ss -lntup |
列出监听端口与对应进程 |
lsblk -f |
块设备与文件系统、UUID 的对应关系 |
findmnt |
挂载点与挂载参数一览 |
lsof -p PID |
进程打开的文件与网络连接 |
tcpdump -i IFACE -nn port PORT |
抓指定网卡与端口的流量 |
docker stats --no-stream |
一次性查看容器资源占用 |
HOW TO REACH ME
笔记是写给自己看的,但也确实帮到过别人,所以把反馈的通道留着。通过域名下的邮箱就能找到我,通常周末集中看一次,工作日可能慢一些。