linux技术文章
-
logrotate 轮替后应用继续写旧日志,通常是进程仍持有旧文件描述符。本文用 /proc//fd 定位 inode,并比较 postrotate 重载与 copytruncate 的适用边界。 285 收藏 -
排查容器或服务目录不一致时,先读取 /proc/PID/ns/mnt 确认 mount namespace,再查看目标进程的 mountinfo,最后用 nsenter 从同一挂载视图检查目录;本文还区分根目录不同、权限不足和 PID 复用。284 收藏 -
通过 systemctl edit 为指定 systemd service 添加 Environment= 或 EnvironmentFile=,再配合 daemon-reload、restart 和进程环境检查,让变量只在目标服务内生效。283 收藏 -
通过 memory.max、memory.current、memory.events 和 memory.events.local 建立一套可读的 cgroup v2 内存排障方法,明确 oom 计数与 oom_kill 计数的区别,避免看到 OOM 就误判进程已经被杀。281 收藏 -
Linux cgroup v2 中,memory.current 用来观察当前及后代 cgroup 的内存,memory.max 用来设置硬上限;配合 memory.events 可以判断节流、触顶和 OOM。280 收藏 -
Linux tmpfs适合可重建缓存,但容量上限、inode数量、RAM与swap占用以及重启清空边界必须分别设置和判断。本文用挂载命令、参数表和部署清单说明如何安全选择tmpfs。279 收藏 -
Linux 中判断默认路由不能只看 ip route 的排列顺序:先按最长前缀缩小候选,再比较 metric,最后用 ip route get 验证实际出口。同 metric 场景应明确区分等价多路径和主备配置。277 收藏 -
nftables 命名 set 可以让地址元素自动过期。本文从 flags timeout、元素 timeout、expires 查看和 update 刷新四个边界说明配置方法。277 收藏 -
Linux 终端里的 ulimit -n 调高后,服务仍可能因为启动链不同而报 too many open files。本文从 /proc/PID/limits 入手,区分 shell、systemd、容器、单进程 RLIMIT_NOFILE 与系统级 file-max,给出可复查的修复路径。275 收藏 -
目录被移动后,inotify 的旧 watch 描述符并没有变成新的永久路径身份。本文从事件对象边界、wd 映射、目录树重扫和队列溢出四个方面说明如何恢复可靠监听。273 收藏 -
Bash 启用 set -euo pipefail 后,grep 无匹配和管道中间命令失败不应混为一谈。本文用条件上下文、PIPESTATUS 和审计日志,给出保留严格模式的处理方案。273 收藏 -
本文用 iostat -x 的吞吐、请求大小、await、aqu-sz 与 %util 建立双轴读取方法,说明如何区分高效传输、排队等待和轻载空闲,并给出 RAID、LVM、云盘与 NVMe 场景下的判断边界。272 收藏 -
Linux memory PSI 中 some 表示至少一个任务因内存资源停顿,full 表示所有非空闲任务同时停顿。本文结合 avg10、avg60、avg300 和 total,说明如何判断近期事件、持续趋势与压力毛刺。270 收藏 -
用 journalctl 的 -u 与 -b 组合,只查看某个 systemd 服务在当前系统启动周期内的日志,并排查空结果、权限和持久化保存等常见问题。268 收藏 -
GNU tar 默认不会启用扩展属性和 POSIX ACL 的完整保留。本文用一个小型备份项目说明如何创建 PAX 归档、选择 xattr 命名空间、恢复并验收权限元数据。268 收藏