柚熊的头像-柚熊闲记
管理员
Be water,my friend!
改完 Nginx 配置用 reload 生效,不中断现有连接-柚熊闲记

改完 Nginx 配置用 reload 生效,不中断现有连接

reload 不断现有连接:新 worker 先接管新请求,旧 worker 处理完手头的才退出。 改完配置先跑 nginx -t 查语法,语法不过 reload 会保留旧进程,配置改了却没生效。 两类失败要留意:监听端口...
访问日志加上游耗时,判断时间花在哪一段-柚熊闲记

访问日志加上游耗时,判断时间花在哪一段

默认日志没有分段耗时,要自定义格式:request_time 整段耗时,upstream_response_time 后端耗时。 看哪段大:上游都大是后端慢;只有连接耗时大是网络问题;请求耗时大而上游小是收数据或 Ngin...
CI 每次重装依赖太慢,把缓存目录挂起来复用-柚熊闲记

CI 每次重装依赖太慢,把缓存目录挂起来复用

缓存的关键不是路径,是 key 怎么定。 用依赖清单文件的哈希当 key:清单没变直接命中缓存跳过安装,清单一变 key 就变,缓存自动失效,不会用到过期依赖。 只配精确 key 会有一改清单就从零装...
扫依赖漏洞并有序升级,别一次性全升-柚熊闲记

扫依赖漏洞并有序升级,别一次性全升

先扫再升,别凭感觉批量更新。 Node 用 npm audit 看分级,Python 用 pip-audit 给出可修复版本,Java 用依赖树插件找出带漏洞的直接依赖。 顺序按先补丁、再次版本、最后跨大版本,一批升完跑...
加类型注解并用 mypy 提前抓出低级错误-柚熊闲记

加类型注解并用 mypy 提前抓出低级错误

注解要从宽到严分步上,一上来全开老项目会报出成百上千条,没人看。 先标参数和返回值,集合类型写清元素类型,可空用 X 或 None;mypy 先只检查已注解的函数,通过后再要求未注解函数必须标注...
多实例部署后定时任务重复跑,怎么保证只执行一次-柚熊闲记

多实例部署后定时任务重复跑,怎么保证只执行一次

三种思路。最省事是分布式锁:任务开始时用 Redis 的 SET 带 NX 和过期时间抢锁,抢不到就跳过本轮。 更严谨是交给调度框架,由调度中心指定一台执行;不想引中间件就用数据库,抢唯一键记录或...
大文件上传做成分片加断点续传-柚熊闲记

大文件上传做成分片加断点续传

把文件切成固定大小的分片,每片带序号上传,服务端记录已收到的分片;续传时先问哪些分片已有,只补缺的。 分片建议 1 到 5 MB,太小请求数暴增,太大失败重传贵;整个文件用内容哈希做标识才...
长列表图片懒加载,用 loading=lazy 或 IntersectionObserver-柚熊闲记

长列表图片懒加载,用 loading=lazy 或 IntersectionObserver

优先用原生方案:img 加 loading=lazy 由浏览器判断距离,补 decoding=async 避免阻塞渲染。 要占位或预加载时用 IntersectionObserver,进视口把 data-src 写回 src 并取消监听。 必须预留宽高...
position: sticky 不生效,检查祖先元素的 overflow-柚熊闲记

position: sticky 不生效,检查祖先元素的 overflow

sticky 失效多半是祖先元素 overflow 不是 visible。 任何一层祖先设了 hidden、auto 或 scroll,它就被当成局部容器去粘。 从该元素往上逐层看计算样式的 overflow,把非 visible 那层改掉。 ...
SELinux 拦截导致服务起不来,先看审计日志再改策略-柚熊闲记

SELinux 拦截导致服务起不来,先看审计日志再改策略

先看审计日志,别急着关 SELinux。 ausearch 筛 AVC 记录能看到被拒的进程和目标路径。 标签不对用 semanage fcontext 改规则后 restorecon,缺能力用 setsebool -P 开布尔值。 需要自定义策略...
NFS 卡死导致连 df 都执行不了,挂载参数该怎么改-柚熊闲记

NFS 卡死导致连 df 都执行不了,挂载参数该怎么改

NFS 服务端不回包时客户端会一直重试,挂载点被扫到就卡住,df、ls 都卡死。 挂载时把超时调小让它尽快失败:timeo 单位 0.1 秒,retrans 控制重试次数。 卡住的挂载用 umount 带 -f -l 强制延...
dmesg 报 I/O error,判断磁盘是不是要坏了-柚熊闲记

dmesg 报 I/O error,判断磁盘是不是要坏了

先分清介质错误还是链路异常:dmesg 带 -T 看时间戳,确认报错落在哪个块设备。 再用 smartctl 读健康状态,PASSED 只说明盘没被判死,还要看重分配、待定、不可纠正三个扇区计数。 待定扇区不...
本机时间和服务器差几分钟,w32tm 校时怎么修-柚熊闲记

本机时间和服务器差几分钟,w32tm 校时怎么修

先看状态和源:/query /status 看同步时间和偏差,/query /source 看当前源。 域环境跟域控走,源不对先查域控;工作组机器用 /config 指定 NTP 后重启服务。 同步失败多是防火墙拦了 UDP 123,...
程序假死结束不掉,先导出转储文件再分析-柚熊闲记

程序假死结束不掉,先导出转储文件再分析

程序卡死时先别点结束进程,否则现场就没了。 任务管理器详细信息里右键可创建转储文件,procdump 能按 CPU 阈值或挂起时长自动抓。 拿到 dmp 用 WinDbg 打开跑 !analyze -v 看异常线程调用栈,...
用 robocopy 做目录镜像同步,注意 /MIR 会删目标多余文件-柚熊闲记

用 robocopy 做目录镜像同步,注意 /MIR 会删目标多余文件

/MIR 等于 /E 加 /PURGE,目标里多出来的文件会被删掉,用之前先确认方向没搞反。 正式跑之前一律先加 /L 空跑,看清会删哪些文件再动手;回收站和临时文件用 /XD、/XF 排除。 判断结果别只认返...
今日AI动态简报(2026-09-24)-柚熊闲记

今日AI动态简报(2026-09-24)

【本期速览】本期共收录 8 条 AI 动态,集中在智能体与安全合规、AI 产品能力更新、开发与行业动向三条线。 智能体与安全合规方面:澳大利亚总理阿尔巴内塞披露,今年 6 月 18 日一个 OpenAI 智...
🎬 今日经典电影推荐:《楚门的世界》-柚熊闲记

🎬 今日经典电影推荐:《楚门的世界》

你相信你今天的每一个选择都是自己做的吗?如果从出生那天起,你的人生就是一场全球直播,你会在第几年发现这件事?今天的经典电影推荐来了—— 🎬 楚门的世界 (The Truman Show, 1998) 导演: ...
切换机器前先把 TTL 调小,避免解析残留-柚熊闲记

切换机器前先把 TTL 调小,避免解析残留

TTL 决定各地递归 DNS 缓存这条记录多久,直接改指向意味着最长 TTL 那么久里还有用户访问旧机器。 所以切换前一两天先把 TTL 压到 300 秒,等旧缓存过期再改指向,确认流量全落到新机器后调回...
提示证书链不完整,把中间证书按顺序一起配-柚熊闲记

提示证书链不完整,把中间证书按顺序一起配

服务器只发了站点证书、没带中间证书,浏览器会自动补齐,Java 和 curl 会直接报证书链不完整。 判断方法是跑 openssl s_client,加 -showcerts 打印服务器返回的整条链,看中间证书在不在。 修...
用 systemd timer 替代 crontab,日志和依赖都好管-柚熊闲记

用 systemd timer 替代 crontab,日志和依赖都好管

timer 比 crontab 多了 journal 日志、依赖声明和补跑机制。 写法是拆两个文件:只做动作的 service 设 oneshot,同名 timer 用 OnCalendar 写时间、Persistent=true 补跑。 改完 daemon-reload...
把调试器挂到正在运行的进程上做远程调试-柚熊闲记

把调试器挂到正在运行的进程上做远程调试

关键是让进程以允许附加的方式启动。Java 加 JDWP 参数启动,地址只监听 127.0.0.1,再用 SSH 转发连接。 Python 用 debugpy 监听端口由本地 IDE 连,Node 加 inspect 参数启动再连。 调试端口...
提交前自动跑 lint 和格式化,用 pre-commit 或 husky-柚熊闲记

提交前自动跑 lint 和格式化,用 pre-commit 或 husky

Python 用 pre-commit:配置里声明钩子仓库和 id,首次运行装进 .git/hooks,之后每次提交自动执行。 前端用 husky 配 lint-staged,只对暂存区文件跑 eslint 和 prettier。 留一条绕过通道 git...
覆盖率数字高不代表测得好,该看哪几个口径-柚熊闲记

覆盖率数字高不代表测得好,该看哪几个口径

先分清口径:行覆盖、分支覆盖、方法覆盖。行覆盖最容易好看也最没用,分支覆盖才暴露 if 的另一半有没有测到。 只看总数意义不大,要看增量:本次改动代码和新增代码的覆盖率,比全仓平均线有...
并发更新同一行数据被覆盖,用版本号做乐观锁-柚熊闲记

并发更新同一行数据被覆盖,用版本号做乐观锁

两人同时读到 version=1,各自算完写回,后写的覆盖先写的,就是丢失更新。做法是写入时带版本条件。 语句里同时 set version = version + 1 和 where version = 读到的值,影响行数 0 说明被别...
接口字段不能直接删,怎么做向前兼容-柚熊闲记

接口字段不能直接删,怎么做向前兼容

字段不能直接删,分两步:先发一版新旧字段同时返回,把调用方读取路径迁到新字段,确认旧字段调用量归零,下一版才移除。 加枚举值是兼容变更;改字段类型和改语义是破坏性变更,要么开新路径...
flex 子元素被长内容撑破容器,加 min-width:0 解决-柚熊闲记

flex 子元素被长内容撑破容器,加 min-width:0 解决

flex 子项的 min-width 默认是 auto,内容比容器宽时它宁可溢出也不收缩,于是把父容器顶破。给被撑开的子项加 min-width: 0 才会收缩。 纵向容器里对应属性是 min-height: 0,很多人只改横向,...
keep-alive 缓存后页面数据不刷新,用 activated 重新拉一次-柚熊闲记

keep-alive 缓存后页面数据不刷新,用 activated 重新拉一次

被 keep-alive 缓存的组件切回来只触发 activated,created 和 mounted 不会再执行,看到的还是旧数据。 把取数逻辑放进 activated,并加条件判断,只在确实需要时才请求,否则每次切回来都打接...
limits.conf 改了不生效,systemd 服务要写进 unit 的 LimitNOFILE-柚熊闲记

limits.conf 改了不生效,systemd 服务要写进 unit 的 LimitNOFILE

limits.conf 只对 PAM 登录会话生效,systemd 服务不读它,服务里 ulimit -n 还是 1024。 做法是在 unit 里写 LimitNOFILE,再 daemon-reload 重启;240 之前不支持在 service 里设它。 改完去 ...
用 ss 看连接状态分布,判断是积压还是丢包-柚熊闲记

用 ss 看连接状态分布,判断是积压还是丢包

别一条条翻,先按状态聚合看分布。SYN-RECV 多说明握手没走完,通常是队列或 backlog 打满;CLOSE-WAIT 多是代码收了请求没关连接。 再配合内核计数判断:队列溢出计数持续增长说明请求进不来,...
用 netsh 做本机端口转发,把流量转到另一台机器-柚熊闲记

用 netsh 做本机端口转发,把流量转到另一台机器

适合临时把本机端口转到另一台机器。先想清监听地址端口,再指定目标地址端口,v4tov4 表示 IPv4 转 IPv4。 转发依赖 IP Helper 服务,确认它在跑,否则规则加了也不通;show all 可列出当前规...