Skip to content

AISC 运维 经验点 ​

共 10 条 | 全部可溯源([chunk_xxx] / [pms_xxx] / [git_xxx])

1. 跨机解密架构不成立(a1654192_074):笔记本 ws init 生成独立密钥,跨机解密从未在设计中成立——比 4 ​

问题:跨机解密架构不成立(a1654192_074):笔记本 ws init 生成独立密钥,跨机解密从未在设计中成立——比 401 更深的断点,误导性报错掩盖真相

对策:加密架构审计先行:密钥分发与解密链路在设计期验证(机器 A 加密 → 机器 B 可解),不可假设「能解密」;误导性报错改明确诊断

证据:[chunk_a1654192_074] 笔记本独立密钥,跨机解密从未成立 + [chunk_a1654192_097] 126,515 行全解密成功

优化:跨机系统验收清单加「跨机真实数据流验证」项:加密→传输→解密三段逐机器实测

查看详情与分享


2. ssh/scp 命令行传输闪窗(3e087333_089):OpenSSH 的 ssh.exe/scp.exe 即使隐藏 ​

问题:ssh/scp 命令行传输闪窗(3e087333_089):OpenSSH 的 ssh.exe/scp.exe 即使隐藏也会闪窗,计划任务场景不可接受

对策:彻底放弃 ssh/scp 命令行传输,改用 HTTP 传输(纯协议层无窗口)——传输通道与窗口语义解耦

证据:[chunk_3e087333_089] 放弃 ssh/scp 改 HTTP 传输,OpenSSH 隐藏也闪窗

优化:后台/计划任务场景的传输通道选型:HTTP API 优先于 SSH CLI(窗口副作用零容忍)

查看详情与分享


3. scp 假成功(3e087333_019):本机 272MB 密文上传成功,但服务器只拉到 1.45MB——scp 返回 ​

问题:scp 假成功(3e087333_019):本机 272MB 密文上传成功,但服务器只拉到 1.45MB——scp 返回 OK 但数据不全

对策:大文件传输后强制校验:服务器文件大小/行数对比本机;scp 返回码≠数据完整(静默截断/半传)

证据:[chunk_3e087333_019] 272MB 上传但服务器仅 1.45MB,scp 返回 OK 不隐藏

优化:传输校验规则:>10MB 文件必做大小+校验和双验证(与 [pms_600] scp 静默失败互证)

查看详情与分享


4. 后端字段语义颠倒(984446a0):/api/files 的 machine 字段与目录结构语义相反,前端展示错误 ​

问题:后端字段语义颠倒(984446a0):/api/files 的 machine 字段与目录结构语义相反,前端展示错误

对策:字段语义契约化:后端返回字段与目录结构映射显式定义;修复时前后端同步验证

证据:[chunk_984446a0] /api/files 字段语义颠倒 machine=parts[0] 目录结构是 <bucket>

优化:接口字段语义走注册表/契约文档,修复单点字段时检查消费方(与 [git_c1f18e2] 中间件教训同族)

查看详情与分享


5. 互斥跳过轮误报成功(063d0253_032):互斥机制跳过同步轮,但通知弹「同步成功(0 桶 OK)」——状态与事实不 ​

问题:互斥跳过轮误报成功(063d0253_032):互斥机制跳过同步轮,但通知弹「同步成功(0 桶 OK)」——状态与事实不符

对策:状态机显式化:跳过≠成功——跳过轮输出「已跳过(互斥)」状态;_write 通知与真实状态绑定

证据:[chunk_063d0253_032] 互斥跳过轮弹同步成功,_write 通知与状态脱节

优化:通知文案=状态机出口:每种状态(成功/跳过/失败)独立文案,禁止复用成功模板

查看详情与分享


6. .NET 路径尾反斜杠陷阱(b4418b37_039):GetDirectoryName 对带尾反斜杠路径处理异常,机器 ​

问题:.NET 路径尾反斜杠陷阱(b4418b37_039):GetDirectoryName 对带尾反斜杠路径处理异常,机器配置路径查找错误

对策:路径规范化先行:所有配置路径解析前统一去尾斜杠/规范化;路径语义测试用例覆盖尾斜杠变体

证据:[chunk_b4418b37_039] GetDirectoryName 对尾反斜杠路径错误,找 client/machine.ini 失败

优化:路径类 bug 自查清单:尾斜杠/双斜杠/相对绝对三变体(与 [git_9778242] URL 拼接同族)

查看详情与分享


7. JSON 转义地狱(3337afc0_051):JSON 层折叠反斜杠,Python 把反斜杠a 当响铃字符——多语言链 ​

问题:JSON 转义地狱(3337afc0_051):JSON 层折叠反斜杠,Python 把反斜杠a 当响铃字符——多语言链路转义层层剥蚀

对策:绕开转义地狱:内容全用正斜杠 + PYTHONUTF8 直写,避免多层转义语义漂移

证据:[chunk_3337afc0_051] JSON\折叠+Python\a 响铃,正斜杠+PYTHONUTF8 根治

优化:多语言链路数据传递禁用反斜杠敏感内容;转义问题=架构问题,根治在协议层

查看详情与分享


8. 设备吊销无管理通道(3337afc0_052):机器 key 残留时只能人工重置,旧 key 无法远程吊销 ​

问题:设备吊销无管理通道(3337afc0_052):机器 key 残留时只能人工重置,旧 key 无法远程吊销

对策:管理员重置密钥 API:/hosts 页加重置入口(设备吊销合法管理操作),重置后 agent 心跳自动重注册

证据:[chunk_3337afc0_052] 管理员重置密钥 API,设备吊销+心跳自动重注册

优化:机队密钥生命周期:注册/吊销/重注册三态闭环,吊销走 API 不靠人工删文件

查看详情与分享


9. machine.ini 多机互相覆盖(b4418b37_013):多机共享仓库时配置被互相覆盖,身份混乱 ​

问题:machine.ini 多机互相覆盖(b4418b37_013):多机共享仓库时配置被互相覆盖,身份混乱

对策:机器身份认证:配置带机器标识 + 读写校验;每机独立 machine.ini 防覆盖

证据:[chunk_b4418b37_013] machine.ini 互相覆盖→机器身份认证

优化:共享仓库的机器配置三防:唯一标识/权限隔离/覆盖检测(与 [git_48158a5] machine.ini 驱动互证)

查看详情与分享


10. 冒烟命令误杀进程(063d0253_038):冒烟测试 taskkill 误杀所有 pythonw(含刚启动的托盘)—— ​

问题:冒烟命令误杀进程(063d0253_038):冒烟测试 taskkill 误杀所有 pythonw(含刚启动的托盘)——测试命令波及生产进程

对策:冒烟命令精准化:按 PID/进程名精确匹配 + 排除白名单(托盘/守护);误杀后恢复流程前置

证据:[chunk_063d0253_038] 冒烟命令误杀所有 pythonw 含托盘,恢复流程

优化:运维命令杀伤半径审查:kill/rm 类命令先列「波及清单」再执行(与 rm 三层防线同族)

查看详情与分享