linux技术文章
-
GNU tar 备份 Linux 文件时,ACL 和 xattr 不是 -p 的附带效果,需要在创建和恢复阶段分别使用 --acls、--xattrs,并根据属主、命名空间和目标文件系统能力做核对。435 收藏 -
Linux 上 ss 看不到监听端口时,先比较当前 shell 与目标进程的网络命名空间,再在同一 netns 中复查 LISTEN、绑定地址和 PID。492 收藏 -
Linux epoll 的 ET(边沿触发)模式不是只读一次,而是每次收到事件后把非阻塞 fd 处理到 EAGAIN。本文解释剩余数据为何不再提醒、给出 recv 循环的错误分支,并补上 EOF、EINTR 和单连接饥饿的排查要点。414 收藏 -
Linux 根分区明明还有空间,tmpfs 却提示已满怎么办?本文从挂载点、size、nr_inodes、Shmem 和 cgroup 五个角度排查,并给出安全清理与 remount 调整方法。204 收藏 -
排查容器或服务目录不一致时,先读取 /proc/PID/ns/mnt 确认 mount namespace,再查看目标进程的 mountinfo,最后用 nsenter 从同一挂载视图检查目录;本文还区分根目录不同、权限不足和 PID 复用。284 收藏 -
Linux inotify 报监听数量不足时,不要只调大 max_user_watches。本文按 watch、实例和事件队列拆分限制,演示如何读取 sysctl、统计进程 fdinfo,并安全持久化参数。100 收藏 -
用 journalctl 先确认启动批次,再组合 unit、boot 和 since/until 条件定位 Linux 服务日志,并处理空结果、权限和持久化边界。371 收藏 -
systemd timer 的 OnCalendar 出现重复执行时,重点检查重叠日历表达式、多个 timer 共用服务以及 Persistent 补偿触发。本文给出一套可复查的配置和排障方法。144 收藏 -
systemd 的 Restart=always 只负责决定是否重启,RestartSec 和 StartLimit 参数决定重试节奏与上限。本文从退出码、journal、依赖关系和恢复步骤排查服务失败循环。167 收藏 -
Linux cgroup v2 的 io.max 按块设备 MAJ:MIN 设置读写字节速率或 IOPS,并通过 cgroup.procs、/proc/PID/cgroup 和 io.stat 复查限额是否落到目标进程。435 收藏 -
通过 Linux cgroup v2 的 cpu.max 读取 MAX 和 PERIOD,换算进程可用 CPU 配额,并结合 cpu.stat 区分真正的限流、CPU 权重与 cpuset 边界。297 收藏 -
排查 Linux cgroup v2 内存限制时,不能只看 memory.max 是否是数字。沿着进程的 cgroup 路径读取 memory.max、memory.current 和 memory.events,才能判断是否配置上限、是否接近上限,以及是否已经发生触顶或 OOM。216 收藏 -
logrotate 轮替后应用继续写旧日志,通常是进程仍持有旧文件描述符。本文用 /proc//fd 定位 inode,并比较 postrotate 重载与 copytruncate 的适用边界。 285 收藏 -
Linux 终端里的 ulimit -n 调高后,服务仍可能因为启动链不同而报 too many open files。本文从 /proc/PID/limits 入手,区分 shell、systemd、容器、单进程 RLIMIT_NOFILE 与系统级 file-max,给出可复查的修复路径。275 收藏 -
Linux 使用 mount --bind 后执行 umount 报 target is busy,通常要先让 shell 和服务离开目标目录,再区分工作目录、打开文件、子挂载与传播状态逐项排查。476 收藏