linux技术文章
-
nftables 规则看起来写对了,流量却没有按预期放行或拒绝,通常要从 counter、链优先级和实际生效配置三处核对。本文给出一套可回滚的排查顺序。158 收藏 -
tmpfs 挂载点明明还有空间,应用却可能报 No space left on device。本文按容量、inode 和内存回收三个维度,用 df、df -i、findmnt 与内核回收指标定位真正的限制,并给出可回滚的调整顺序。158 收藏 -
Linux 使用 sysctl -w 修改的只是当前运行时状态。本文以安全可回滚为主线,说明如何记录原值、临时试验、写入 /etc/sysctl.d/,再按单文件和全系统顺序重载并排查覆盖问题。158 收藏 -
用 fanotify 监控目录时,读到的通常是事件元数据而不是文件正文。本文从 fanotify_init、fanotify_mark、事件掩码和 read 的关系入手,解释为什么 FAN_EVENT_ON_CHILD 只能告诉你子项发生变化,以及何时应使用 FAN_OPEN_PERM 或 FAN_CLOSE_WRITE 再自行打开文件核对内容。155 收藏 -
Bash 管道默认只返回最后一个命令的退出码,前置命令失败可能被吞掉。本文用 pipefail 和 PIPESTATUS 说明如何让脚本正确发现并定位管道错误。155 收藏 -
Linux vmstat 的 si 和 so 分别表示从磁盘换入、向磁盘换出内存。本文从采样口径开始,结合 swpd、free、r、b、wa 以及 /proc/vmstat 的 pswpin、pswpout,给出判断持续换页的排查方法和边界。153 收藏 -
排查容器或隔离进程时,nsenter 可以让诊断命令进入目标进程的 PID 或 mount 命名空间。本文从 /proc//ns/* 核对目标,再用最小命令验证视图差异,并说明 PID 命名空间的 fork 边界与退出前检查。 151 收藏 -
cron 不会自动复刻登录后的交互式 shell。本文从 PATH、SHELL、HOME 和 PWD 入手,用最小记录脚本与显式 cd、绝对路径修复定时任务环境差异。150 收藏 -
Linux strace -f 会把子进程的系统调用也带进来,输出很快变得难读。本文用 -e、-P、-o、-ff、-qq 和 -s 分层缩小范围,并说明如何验证筛选没有把关键调用隐藏掉。149 收藏 -
用 stat 对照 Linux 文件的 inode、mtime、ctime 和 sha256sum,判断配置是否真的被替换,以及服务是否重新读取了新文件。147 收藏 -
Linux 执行 sysctl 写入时出现 EINVAL,通常要区分值格式或范围错误、当前内核未暴露参数,以及模块加载和持久化顺序问题。本文从临时写入、/proc/sys 检查、sysctl.d 配置和重载验证四个边界给出排查方法。147 收藏 -
用 Linux ss 查看监听 socket 对应的进程、TCP/UDP 连接状态、端口过滤和权限可见性,快速定位端口排查问题。145 收藏 -
Linux inotify 不保证一次写入只产生一条业务通知。本文从事件合并、去重键、IN_Q_OVERFLOW 和目录监听竞态四个方面,给出可恢复的处理策略。145 收藏 -
systemd timer 的 OnCalendar 出现重复执行时,重点检查重叠日历表达式、多个 timer 共用服务以及 Persistent 补偿触发。本文给出一套可复查的配置和排障方法。144 收藏 -
journalctl -b -1 没有结果,不一定代表上一轮启动没有日志。本文按启动编号、持久化目录和时间范围逐层核对,帮助你区分查询偏移写错、journal 只存于运行时目录,以及历史日志已被清理这三类情况。143 收藏