机房巡检登记台账生成器(server-room-check-log)
一句话结论:给你一张能直接交机房管理督查的巡检登记台账——四场景(环境巡检/设施状态/缺次核查/月度汇总)逐点留痕,温湿度读数超合格限(限值由 --limits 给定,不硬编)整行标红提醒人工确认,巡检缺次自动提示,缺什么一眼看到。
本页导航:菜单式选路 → 对话示例 → 快速上手与输出预览 → 退出码表 → 字段与判定口径 → 铁律(医疗合规四关)→ 能力边界量化表 → 岗位场景例子 → 边界提醒 → 文件索引。
菜单式选路
使用者开口后按场景引导,一次一问补要素:
第一步 · 选场景(回复序号或场景名均可):
- ① 环境巡检登记(温度/相对湿度读数抄录,按 --limits 给定合格限比对,超限标红)
- ② 设施状态登记(UPS/空调/消防/新风机状态照抄巡检结果,填「异常/告警」标红提醒人工确认)
- ③ 巡检缺次核查(应巡检次数 vs 实际登记次数,缺次整行标红提示)
- ④ 月度汇总(按巡检项目归集登记次数、超限次数、异常次数、缺次次数——纯抄录计数)
第二步 · 给数据(任选一种):
1. 粘贴/口述巡检记录(按巡检点逐行给:日期、巡检点、读数、状态、工号……缺的项不用编)
2. --preset 场景名 --save 骨架.json 生成填写骨架,填好 --input 回来
3. --demo 先看脱敏样例长什么样
4. 直接要空模板(8 行【待填】占位)
第三步 · 出台账:xlsx 双表 = 巡检明细(异常行整行标红 + 【待填】红字 + 冻结表头)+ 统计汇总(异常清单/【待填】清点/隐私与合规提示)。
不知道选什么?直接说需求,我给你列选项,回个序号就出表。
对话示例
> 用户:机房每天要巡检登记,帮我弄个表
> 助手:好的,先选场景(回序号或场景名):①环境巡检登记 ②设施状态登记 ③巡检缺次核查 ④月度汇总
> 用户:1
> 助手:好的,环境巡检登记。温湿度合格限是多少(用 --limits 给定,如 温度:15-30,湿度:30-70,超限自动标红)?
> 用户:温度 15 到 30,湿度 30 到 70
> 助手:收到,合格限 温度 15–30、湿度 30–70。请按巡检点给数据,一次一项,缺的跳过不编:
> 1. 巡检日期+时间?(示例:2026-11-01 08:30)
> 用户:2026-10-31 08:50,UPS 间,温度 31.2,湿度 45,N4001
> 助手:要素齐全。温度(31.2)超出给定合格限 15–30,将整行标红提醒人工确认(工具不作可用性结论)。生成台账:1 行,1 个标红行。
快速上手
> 复现提示:台账日期缺省=运行当天(每次运行会变);演示/复现请固定 --date(如 --date 2026-11-01),输出即与 assets/preview.md 摘录逐格一致。
# 场景菜单
python scripts/make_server_room_check_log.py --presets
# 脱敏示例(--date/--limits 固定复现)
python scripts/make_server_room_check_log.py --demo --out 台账.xlsx --date 2026-11-01 --limits "温度:15-30,湿度:30-70"
# 指定场景(回序号 1/2/3/4 或场景名均可)
python scripts/make_server_room_check_log.py --preset 设施状态登记 --out 10月设施状态.xlsx
# 从填写好的骨架生成(骨架里的 limits 会被采用;命令行 --limits 优先级更高)
python scripts/make_server_room_check_log.py --input 骨架.json --out 台账.xlsx
# 空模板(8 行【待填】占位)
python scripts/make_server_room_check_log.py --preset 巡检缺次核查 --out 空模板.xlsx
输出预览
以下为 --demo --date 2026-11-01 --limits "温度:15-30,湿度:30-70"(场景① 环境巡检登记)输出的文本摘录(截取自实际生成的 xlsx 关键单元格;完整摘录见 assets/preview.md):
| 序号 | 巡检日期 | 机柜区/巡检点 | 温度(℃) | 相对湿度(%) | 巡检人(工号) | 备注 |
|---|---|---|---|---|---|---|
| 1 | 2026-10-31 | A区冷通道 | 24.5 | 48 | N4001 | |
| 3 | 2026-10-31 | UPS 间 | 31.2 | 45 | N4001 | ⚠️ 温度(℃)读数(31.2)超出给定合格限 15–30,请人工确认…(整行标红) |
| 4 | 2026-10-31 | A区冷通道 | 24.2 | 76 | N4002 | ⚠️ 相对湿度(%)读数(76)超出给定合格限 30–70…(整行标红) |
| 5 | 2026-10-31 | B区热通道 | 【待填】 | 【待填】 | N4002 | ℹ️(读数没抄到就留【待填】,不编造) |
统计汇总(截取前几行):登记场景=环境巡检登记|台账日期=2026-11-01|合格限=温度 15–30;湿度 30–70|登记行数=6|异常行数(红)=2|【待填】单元格=2。
退出码表
脚本:scripts/make_server_room_check_log.py(v1.1.0)
| 退出码 | 含义 | 处理 |
|---|---|---|
| 0 | 台账生成成功 | — |
| 10 | 输入文件不存在(沿用现有体系约定) | 核对 --input 路径 |
| 11 | 输入缺失:缺 items / items 非数组 / --save 未指定 --preset |
按 {"items": [ … ]} 结构补齐 |
| 12 | 格式错误:JSON 无法解析 / items 项非对象 / --date 或 --limits 格式非法 |
核对 JSON 语法、日期与限值格式 |
| 13 | 隐私拦截:输入检测到敏感个人信息(姓名明文、身份证号、手机号) | 去除敏感信息后重试;人员一律写工号(错误提示不回显敏感值) |
| 14 | 校验失败:预设名不存在 | 见 --presets 菜单(回序号/场景名均可) |
| 15 | 运行超时(60 秒看门狗) | 重跑同一条命令 |
| 20 | 解析失败 / 输出失败等未预期异常(兜底;输出失败/文件被占用时已自动等 2 秒重试一次) | 仍失败则关闭占用程序(如正在打开的同名 xlsx)后重跑;把输入 JSON 与提示发给助手排查 |
| 21 | 缺依赖 | pip install openpyxl 后重跑 |
单行日期/读数格式错误不中断整份台账:该格转【待填】红字并在备注注明原因,汇总页计入清点;文件级错误才整体退出。
字段与判定口径
- ① 环境巡检登记(8 列):序号 / 巡检日期 / 巡检时间 / 机柜区/巡检点 / 温度(℃) / 相对湿度(%) / 巡检人(工号) / 备注
- ② 设施状态登记(9 列):序号 / 巡检日期 / 机柜区/巡检点 / UPS状态 / 空调状态 / 消防设施状态 / 新风机状态 / 巡检人(工号) / 备注
- ③ 巡检缺次核查(9 列):序号 / 月份 / 机柜区/巡检点 / 巡检项目 / 应巡检次数 / 实际登记次数 / 相差次数 / 巡检人(工号) / 备注
- ④ 月度汇总(8 列):序号 / 月份 / 巡检项目 / 登记次数 / 超限次数 / 异常次数 / 缺次次数 / 备注
异常行整行标红(写入备注 ⚠️ 提醒人工确认,非结论):
- 环境巡检:巡检日期缺失|温度/湿度读数超出给定合格限(限值只来自 --limits 或骨架 limits,不硬编;未给定则不做超限比对,汇总页注明)
- 设施状态:巡检日期缺失|任一设施状态登记为「异常/告警」(只提醒人工确认,不谈停机建议)
- 缺次核查:实际登记次数 < 应巡检次数(缺次提示)|实际登记 > 应巡检(口径核对)|月份缺失
- 月度汇总:超限次数/异常次数 > 登记次数|巡检项目缺失|计数为负
- 各场景通用:数值为负数(四场景通用判定:环境读数/应巡检次数/实际登记次数/月度计数任一为负即标红)
巡检时间格式校验(场景①):须为 HH:MM 24 小时制(如 08:30);非法值(如 8点半、24:00)转【待填】并给软提示,不中断整份台账。
软提示(备注 ℹ️ 提示,不标红):日期/月份/巡检时间/数值格式无法识别(该格转【待填】);设施状态全部未填给出补登提示;给定 limits 未覆盖温度/湿度列时注明未比对。
- 【待填】单元格红字标红,汇总页清点数量并提示「未补齐视为登记未完成」
- 相差次数为纯算术推导(应巡检−实际登记),输入不全则为【待填】,绝不代填
- 读数支持整数/小数;日期支持
2026-03-15/2026年3月15日/20260315,时间支持08:30式(HH:MM 24 小时制,非法值转【待填】),月份可直接填2026-10/2026年10月 --limits格式:温度:15-30,湿度:30-70(名称:下限-上限,逗号分隔,名称写「湿度」即可匹配「相对湿度(%)」列);人员一律写工号;--input的 JSON 里可写"preset": "场景名"自动选路;骨架顶层的date/dept/limits回读时同样生效(命令行--date/--dept/--limits优先级更高,同时给出时覆盖骨架值)
铁律(医疗合规四关)
- 不判机房可用性结论:只做巡检读数与设施状态登记;读数超限/状态异常只标红提醒人工确认,不谈停机建议、不下可用性结论;处置以机房管理制度与当班工程师判断为准
- 敏感个人信息硬拦截:脚本检测到姓名明文(含「姓名:X」「X某某」式结构)、身份证号、手机号 → 退出码 13 直接拒绝处理(错误提示不回显敏感值);人员一律写工号,机柜区/设备名允许;「服务器/机房/巡检/UPS」等词白名单防误拦
- 数据不出机:台账本地生成,无网络请求;巡检记录按院内数据管理规定流转
- 不编造不代填:读数/日期/关键要素缺失一律【待填】标红,汇总页清点;读数是抄录值,工具绝不按经验或季节推算补数
能力边界量化表
| 能做 | 不做(明确边界) |
|---|---|
| 四场景巡检台账生成(xlsx 双表,可打印归档) | 不替代动环监控系统:无实时采集、无告警推送、无联动控制 |
| 读数超限标红(限值由 --limits 给定,不硬编) | 不判机房可用性结论:超限只标红提醒人工确认 |
| 巡检缺次提示(缺次数纯算术推导) | 不谈停机建议:是否降载/停机由当班工程师按制度决定 |
| 【待填】清点与补填提示(不代填) | 不推算补数:没抄到的读数一律【待填】,不按经验估值 |
| 敏感个人信息隐私拦截(退出码 13) | 不识别或处理监控截图/传感器导出文件;输入仅支持 JSON 文本 |
| 本地生成、数据不出机 | 不引用机房设计规范具体条款号;合格限口径以本院制度为准 |
岗位场景例子
- 机房值守人员:「每天早晚两次抄温湿度,本子容易丢」→ 选 ① +
--limits→ 读数超限整行红,交班一目了然 - 信息科班组长:「UPS/空调状态每天要过一遍」→ 选 ② → 「异常/告警」状态标红提醒人工确认
- 信息科负责人:「院里查巡检执行率」→ 选 ③ → 应巡 vs 实登缺次自动算,漏检漏登直接见红
- 信息科负责人:「月度安全例会要巡检汇总」→ 选 ④ → 按项目归集登记/超限/异常/缺次计数
边界提醒
- 与 equipment-check-calendar 划界:医疗设备(监护仪、呼吸机等)巡检用 equipment-check-calendar;本工具只管信息机房环境与设施
- 与 lab-fridge-temp-log 划界:检验科冰箱温度用 lab-fridge-temp-log;本工具只管机房温湿度
- 本工具不替代动环监控系统;实时告警以动环平台为准,台账是人工巡检留痕
- 合格限不硬编:每次运行用
--limits给定本院口径;不给定则不做超限比对 - 读数超限标红只是提醒人工确认——不是「机房不可用」结论,更不含停机建议
文件索引
| 文件 | 用途 |
|---|---|
| scripts/make_server_room_check_log.py | 核心:CLI 成稿 + 四场景判定 + 超限/缺次标红 + 隐私拦截 + 错误码兜底 |
| references/server-room-check-guide.md | 登记实践参考:读数抄录/限值口径/缺次核查/月度归集台账口径 |
| assets/faq.md | 常见问题 12 条(隐私拦截/限值参数/标红含义/待填卡点/系统边界等) |
| assets/anti-patterns.md | 反模式集中清单(错误操作+后果+替代) |
| assets/preview.md | 成稿预览(真实输出摘录+逐格复现命令) |
| assets/input-example.json | 输入示例(脱敏,可直接 --input 试跑) |
| beta-test/run_tests.py | 内测回归脚本(隐私拦截/退出码/超限标红/缺次提示/待填不编造等) |
FAQ 快捷导航:机房要不要停机→Q1|没数据能生成吗→Q2|为什么被拒绝(13)→Q3|限值不给会怎样→Q4|读数谁抄→Q5|标红是不是判定机房有问题→Q6|和动环系统→Q7|数据外传→Q8|【待填】算完成吗→Q9|和医疗设备/冰箱台账→Q10|缺次怎么算→Q11|可以抄表估值吗→Q12。