linux技术文章
-
排查 Linux 服务故障时,journalctl 的时间范围很容易因为日期省略、边界含义和时区显示产生误判。本文用一段可复查的故障窗口说明 --since、--until、short-full 和服务过滤的配合方式。134 收藏 -
服务停止时日志已经出现 SIGTERM,但进程迟迟不退,甚至留下僵尸进程。本文用一个可复查的 Linux 场景讲清信号是否送达、进程是否处理、子进程如何回收,以及服务管理器的停止边界。208 收藏 -
Shell 脚本明明执行失败却返回 0,或者 set -e 没有按预期中断,常见原因是管道只返回最后一项的状态、条件命令被豁免,或脚本覆盖了前一个退出码。本文从日志检查脚本的故障现场出发,解释 set -e、set -o pipefail 和 PIPESTATUS 的适用边界,并给出可复查的修正方式。293 收藏 -
从 /tmp 与 /var/tmp 的清理规则入手,解释 tmpfiles.d 如何按年龄阈值处理临时文件,并给出不误删业务数据的核对与验证步骤。126 收藏 -
Linux 使用 tar 解压时遇到 Permission denied,先判断目标目录是否可写,再核对压缩包内路径、目录属主和 umask,最后用最小权限复测,避免直接使用高权限掩盖问题。482 收藏 -
rsync --delete 会删除目标端多出来的文件,但源路径边界、通配符和试运行步骤一旦弄错,就可能把误差放大成批量删除。本文从误删现场出发,讲清目录语义、--dry-run 核对和恢复检查。189 收藏 -
Linux 主机端口还没耗尽却偶发新连接超时,不能只盯着 ss 数量。本文从 conntrack 表使用率、网卡丢包计数和回收参数入手,拆出证据链、处理顺序与复测边界。301 收藏 -
Linux 服务管理器读取 EnvironmentFile 后变量仍为空时,优先检查文件格式、路径权限和 daemon-reload 与 restart 的执行顺序。本文用一个最小服务逐项验证,给出可回滚的排查路径。489 收藏 -
容器被杀掉时,单看宿主机 free -h 很容易误判。本文以 cgroups v2 为例,逐项核对 memory.current、memory.high、memory.max 和 memory.events,区分限流、硬上限与 OOM,并给出可复查的验证顺序。304 收藏 -
用 journalctl 的 -b、时间范围和字段过滤快速收窄本次启动日志,避免把上一次启动遗留的报错误判成当前故障。484 收藏 -
Linux 服务由服务管理器拉起后立刻退出时,沿着 unit 配置、启动命令、Type 语义和退出状态码逐层排查,区分配置错误、前台进程退出与服务类型不匹配。405 收藏 -
用 pidstat 对同一个进程做连续采样,结合 CPU 时间、I/O 延迟和上下文切换判断到底是计算繁忙还是资源等待,并给出复测与回滚边界。252 收藏 -
从 Linux 服务的 MemoryMax 限制出发,结合 memory.events 和 journalctl 证据判断 OOM 来源,再给出安全的恢复、调参与回滚检查。462 收藏 -
Linux 主机出现端口不通时,不要先改一堆 nftables 规则。本文用规则计数器确认流量是否到达,再用 nft monitor trace 追踪 input、forward 或 output 链的实际命中位置,最后给出恢复与清理方法。134 收藏 -
Linux 服务启动失败时,先用状态命令确认状态,再用 journalctl -u 读取本次启动日志,区分配置错误、权限问题和依赖未就绪,最后用可回滚的 drop-in 配置完成验证。351 收藏