技能|运维SOP
适用场景
程序上线部署后的日常运维:端口冲突、数据库备份与迁移、版本升级与回滚、定时任务、日志与状态观测。
操作步骤
- 服务端口:本机 Node 服务监听 6060;冲突时
listenWithRetry自动+1。观测实际端口以日志为准,勿硬编码 6060。 - 数据库:业务库
security.db(SQLite);结构迁移SCHEMA_VERSION=3落runtime/meta,幂等 ensure,首次启动自动升级;运维备份点 = 备份security.db与其同目录_internal。 - 升级/回滚:exe 部署前旧版备份为
*.bak_nativeXX;回滚即恢复该备份并重启。构建产物_internal须与 exe 版本一致。 - 定时任务:AI 周报由
setup.iss注册计划任务(本机手动执行,--auto-weekly/-quarterly/-halfyear/-yearly无界面模式);沙箱拦schtasks须本机跑。 - 状态观测:状态栏
st_ver显示name + version(取自/api/version→PKG.version,当前 1.2.0);GUI 存在性用 EnumWindows 枚举标题「某单位安防工作台」判定,tasklist 内存数不可信。 - 日志:
runtime/logs\(启动错误.log、qt_messages.log经qInstallMessageHandler落盘);构建/运行.log已纳入.gitignore不入库。
注意边界
- 备份优先于任何升级;升级前先备份
security.db+_internal。 - 数据隐私:涉密/内部资料禁出本机、禁上传云端。
- 代理陷阱:连 6060 的脚本/命令须
env -u http_proxy -u https_proxy前置。
反例避雷
- ❌ 跨机拷贝绝对路径:改用
server/lib/paths.js三级解析。 - ❌ 无备份直接升级:回滚无据。
- ❌ 用 tasklist 内存判存活:pythonw 活却显极小,必须 EnumWindows 看窗口标题。