-
本文从 SSH ControlPath 的 %h、%p、%r、%j 和 %C 展开规则入手,说明多主机、多端口、多用户与跳板环境中如何避免复用同一个 socket,并给出配置、排查和按别名隔离的实用写法。
-
启动脚本不必总等到整个 udev 队列清空。本文说明 udevadm settle 的 --exit-if-exists 如何以设备文件作为提前结束条件,并给出超时、返回码和迁移检查方法。
-
udevadm settle 返回非零时,通常说明事件队列在指定时间内没有变空。本文区分全局队列与本次触发事件的等待语义,解释默认 120 秒、--timeout=0、退出码和启动脚本中的安全处理方式。
-
systemd-tmpfiles 清理前不要直接执行删除命令。本文从配置目录优先级、age 规则和 --clean 的职责开始,给出 systemd-tmpfiles --clean --dry-run 的预演方法,再解释如何按路径、保留时间和退出码判断输出,并区分 --clean、--remove 与 --purge 的适用边界。
-
区分 systemd-tmpfiles 的用户实例与系统实例,掌握配置目录、--user 命令和 /tmp 清理边界,避免把用户临时数据放错作用域。
-
systemd-tmpfiles --cat-config 会把 tmpfiles.d 配置片段和来源文件名一起输出。本文从系统与用户实例、配置目录优先级、同名文件替换、--tldr 精简查看和只读排查清单入手,说明如何定位最终采用的配置来源,不执行清理或创建动作。
-
systemd-tmpfiles --purge 不是普通的 /tmp 轮转命令。它只处理命令行指定的 tmpfiles.d 配置中带 $ 标记的创建项,适合软件包卸载时清理自身声明的运行目录。本文给出定位配置、--dry-run 预览、正式执行和与 --remove、--clean 区分的完整流程。
-
journalctl --vacuum-size 只清理归档日志,活动文件仍可能让磁盘占用高于目标值。本文从一次手工清理出发,说明 --rotate、容量、时间、文件数与 journald.conf 保留策略如何配合,并区分持久化日志与运行时日志。
-
OpenSSH ControlMaster 复用失败通常不是开关没有写上,而是 ControlPath 没有命中、主连接已经退出、ControlPersist 未驻留或 socket 权限与路径不一致。本文用 ssh -G、ssh -O 和 -vvv 给出一套可复查的定位方法。
-
systemd 的 OnCalendar 默认会结合当前时区解释日历表达式。本文用显式 IANA 时区、匹配的 service/timer 单元和 systemd-analyze calendar,解决跨时区部署与夏令时切换时的定时任务漂移问题。
-
dm-crypt 默认不会把 discard 请求传到下层设备。本文从设备链、queue sysfs 指标和 cryptsetup 配置三方面说明如何判断 SSD TRIM 是否可用,并比较周期性 fstrim 与 --allow-discards 的性能和安全边界。
-
perf stat 可以通过 CPU 的性能监控单元统计 cycles、instructions 等硬件事件。本文从事件组合、稳定采集、CPI 解释和权限边界四个方面,说明如何用一条可复查的命令分析 CPU 周期,避免把计数器不可用误判成程序性能问题。
-
io_uring 注册缓冲区会让内核提前固定并映射可复用的用户内存,后续小文件读写可通过 READ_FIXED 或 WRITE_FIXED 直接引用缓冲区索引。本文用 liburing 讲清注册、提交、完成和资源限制,并说明哪些场景不值得使用。
-
Linux 的 bind mount 只是复制一个挂载视图,后续挂载事件是否同步取决于 shared、slave、private 和 unbindable 等传播属性。本文用隔离实验树说明传播方向、命名空间边界和清理方式。
-
cgroup v2 的 io.weight 用 1 到 10000 的权重表达同级 cgroup 之间的块设备 I/O 相对份额。本文说明默认权重、major:minor 设备覆盖、控制器适用条件,以及如何用 io.stat 在真实争用中复查。