文档
Task Scheduler
两个互补界面:用于一次性 jobs 的应用内 scheduler(Ctrl+Alt+S)和使用捆绑的 `nbcli` helper 注册 cron / launchd / Windows Task Scheduler 条目的 OS 级 scheduler(Ctrl+Alt+Shift+K)。
它是什么
从 NoSqlStudio UI 安排重复的 DBA 杂务 — mongodump、mongoexport、自定义 shell scripts。应用内 scheduler 在应用打开时运行;OS scheduler 将 job 移交给操作系统的原生 scheduler,即使应用关闭也运行。
何时使用
对一次性 / dev-time 运行使用应用内 scheduler。对生产级备份、定期导出到 S3、每周脱敏和刷新作业,或任何必须在工作站重启后仍存活的内容,使用 OS scheduler。
如何打开
- 应用内 jobs — 打开 Tools 菜单 → Tasks Scheduler,或按 Ctrl+Alt+S。
- OS jobs — 打开 Tools 菜单 → OS Task Scheduler,或按 Ctrl+Alt+Shift+K。
- 每个都打开一个 workspace tab,带已注册 tasks 列表 + 一个 New Task 按钮。
构建 OS task
- 选择 task 类型:mongodump、mongoexport、shell script,或预定义 templates 之一(mask-and-copy、schema-diff-report、audit-export)。
- 选择 schedule:hourly / daily / weekly / monthly / cron 表达式(例如 `0 2 * * *` 表示每晚 02:00)。
- 选择 start / end 窗口(可选)。OS scheduler 仅在此窗口内安排 job。
- 填写 task 特定参数(target connection、输出目录、--collection 过滤器等)。`{date}` 占位符在执行时展开,使每次运行写入唯一命名的 artifact。
- 点击 Register。NoSqlStudio 写入 OS 原生条目:Windows 上使用 `schtasks.exe`,macOS 上写入 `~/Library/LaunchAgents/...plist`,Linux 上写入 `~/.config/cron.d/` + 如果可用则 systemd timer。
`nbcli` helper
OS scheduler tasks 调用 `nbcli`(NoSqlStudio CLI),一个捆绑的二进制文件,从命令行运行您的 job,无需 UI。它通过 base64 编码的 JSON 读取参数,通过 spawn 执行,直接在 `userData/AuditLog/audit.jsonl` 写入自己的审计行,并在 `userData/OsTaskSchedules/nbcli.log` 下轮换其日志。
审计
每个 OS task 发出 `os-task.start` 和 `os-task.finish` 审计行(success / failure outcome)。应用内日志 workspace 将这些与 DataMask / DB Copy 行一起显示 — 用于法证调查的同一来源。
限制(v1)
- OS scheduler 要求 `nbcli` 在您的 PATH 中(installer 将 wrapper 放入应用 exe 目录;macOS `.app` 捆绑包可能需要 symlink)。Mongo 工具(`mongodump`、`mongoexport`)也必须在 PATH 中或在 `NBCLI_MONGO_TOOLS_DIR` 中。
- 跨机器同步 — schedules 是本地的。如果您需要 fleet-wide 一致性,使用 config-management 工具(Chef / Ansible / SCCM)推送 templates。
- 失败通知使用相同的 Alerting webhooks。如果您未配置 webhooks,失败会无声地落入审计日志。