linux技术文章
-
用 ss -ltnp 定位监听端口对应进程,再用 -o、state 和端口过滤器读取 TCP 计时器,解释 timer 输出字段、权限限制与排障边界。298 收藏 -
日志归档不应只是一条 tar 命令。本文给出一个 Bash 最小脚本:固定来源路径、按天生成压缩包和 SHA-256 清单、校验后清理过期归档,并说明失败时如何保留原日志。297 收藏 -
通过 Linux cgroup v2 的 cpu.max 读取 MAX 和 PERIOD,换算进程可用 CPU 配额,并结合 cpu.stat 区分真正的限流、CPU 权重与 cpuset 边界。297 收藏 -
从 kernel.org 下载 Linux 内核源码时,tar.sign 对应的是解压后的 tar,而不是 tar.xz。本文说明源码包、分离签名、维护者公钥和指纹之间的关系,并给出 Good signature、WARNING 与 BAD signature 的判断边界。296 收藏 -
非 root 进程绑定 80 端口,不只取决于 setcap 是否出现,还要核对内核低端口范围、文件能力、解释器启动方式和实际进程能力。本文用一组可复现命令把判断链串起来。295 收藏 -
Persistent=true 会把 timer 对应服务的上次触发时间保存到磁盘;timer 再次激活时,若 OnCalendar 在未激活期间至少到点一次,就补触发一次服务,而不是逐条回放所有错过时刻。294 收藏 -
rsync 默认会删除中断产生的未完成文件,--partial-dir 可把接收端的部分数据放进独立目录,并在下次同路径传输时作为 delta 基础。本文给出最小命令、变体和冲突选项。294 收藏 -
用 pidfd_open 获取稳定的进程引用,配合 poll 观察退出、waitid 回收状态,解决长驻监控器因 PID 复用误判进程身份的问题。293 收藏 -
Shell 脚本明明执行失败却返回 0,或者 set -e 没有按预期中断,常见原因是管道只返回最后一项的状态、条件命令被豁免,或脚本覆盖了前一个退出码。本文从日志检查脚本的故障现场出发,解释 set -e、set -o pipefail 和 PIPESTATUS 的适用边界,并给出可复查的修正方式。293 收藏 -
用 Linux find 按文件大小和修改时间清理缓存时,先固定目录和文件边界,再打印候选清单,最后复用同一组条件执行 delete,避免误扫挂载点或删除不该动的目录。293 收藏 -
Linux 的 load average 不只统计正在抢 CPU 的任务,也会计入等待 I/O 的不可中断任务。遇到负载高而 CPU 看似空闲时,先对齐 uptime、/proc/loadavg、vmstat 和进程状态,再确认具体等待点与磁盘或网络存储的时间关系,避免一上来扩容或杀进程。292 收藏 -
服务器重启后用 journalctl 只能看到当前启动记录,通常不是日志凭空消失,而是 journald 没有持久化到 /var/log/journal,或查询范围没有切到历史启动。本文从 --list-boots、Storage 配置、目录权限和验证命令排查。292 收藏 -
Linux 上普通用户运行的服务默认不能绑定 1024 以下端口。本文用 setcap 为单个可执行文件授予 CAP_NET_BIND_SERVICE,演示 getcap 验证、服务启动检查、文件替换后的能力丢失,以及 setcap -r 撤销和复查。290 收藏 -
Linux 排查文件被进程占用时,用 lsof 定位 PID、用户、文件描述符和打开模式,并处理权限不足、软链接、目录范围和 deleted 文件等常见误判。289 收藏 -
用 journalctl 同时限定 systemd unit 与当前系统启动,掌握 --list-boots、boot ID、时间范围和服务重启边界,快速定位本次启动中的 Linux 服务日志。288 收藏