已有任务镜像

Hermes 定时任务一览

更新日期:2026-07-11

以下信息完整记录了每个任务的配置参数和内部结构,另一 Hermes 实例可据此重建完全相同的定时任务。


1️⃣ trilium-data-publish

IDfed4251f2e2f
调度0 1 * * * — 每天凌晨 01:00 (北京时间)
类型no_agent: true — 纯脚本,无 LLM 推理,脚本 stdout 原样投递
脚本~/scripts/hermes-cron-master.sh
投递telegram:-1003995375876:5072 (H02 Oracle 频道)
状态✅ 启用,上次 2026-07-11 01:00 成功执行

🔄 重建命令

cronjob action='create' \
  name='trilium-data-publish' \
  schedule='0 1 * * *' \
  script='hermes-cron-master.sh' \
  no_agent=true \
  deliver='telegram:-1003995375876:5072'

🧩 内部结构

Master 脚本 hermes-cron-master.sh 是一个 Bash 编排器,循环执行 ~/scripts/cron-tasks/ 目录下的子任务脚本(.sh 或 .py),收集指标后生成紧凑日报。

当前子任务定义(在脚本中硬编码):

键名标签文本脚本路径超时
sitemap🌐 Trilium Sitemap 更新~/scripts/cron-tasks/sitemap.sh110s

脚本还内置了其他子任务的指标提取函数,但 TASK_ORDER 只包含 sitemap

TASK_ORDER=(sitemap)

📋 子任务:sitemap — Trilium Sitemap 更新

脚本~/scripts/cron-tasks/sitemap.sh
用时通常 30-60s
功能抓取 Trilium 共享主页 → 提取所有笔记链接 → 过滤密码保护笔记 → 生成 sitemap.xml → ETAPI 写入 Trilium
执行步骤
  1. curl 获取 https://trilium.atibm.com/share/hermes 主页 HTML(8s 超时)
  2. 正则提取所有 href="./..." 相对链接,过滤掉 .js/.css/.png 等资源结尾
  3. 链接分类:note ID (8-15 字母数字)、自定义别名 (4-30 字母开头)、CVE 编号
  4. 通过 ETAPI /etapi/notes?search=%23shareCredentials 查找密码保护笔记,从结果中移除
  5. 生成 sitemap.xml(根页面 daily/1.0,子页面 weekly/0.6)
  6. 通过 ETAPI PUT /etapi/notes/{TRILIUM_SITEMAP_NOTE_ID}/content 上传
  7. stdout 输出 sitemap XML 内容,stderr 输出执行日志和指标
环境依赖
TRILIUM_ETAPI_TOKEN必须,从 /opt/data/.env$HOME/.env 自动读取
TRILIUM_SITEMAP_NOTE_ID可选,默认 387btDIOMxHp — ETAPI 写入目标笔记 ID
工具curl, python3, grep, sed, sort
输出指标(stderr)
🌐 获取 Trilium 共享主页...
🔗 提取链接...
  提取到 N 个有效链接
🔒 查询密码保护笔记...
  找到 M 个密码保护标识符,过滤中...
  🔒 已移除 K 个密码保护链接
  sitemap.xml: XXXX bytes, N URLs
  ETAPI update: HTTP 204
✅ 完成: https://trilium.atibm.com/sitemap.xml

2️⃣ daily-release-check

ID639fc6d2bdca
调度0 3 * * * — 每天凌晨 03:00 (北京时间)
类型no_agent: false — LLM Agent 驱动,脚本输出注入 prompt 作为上下文
脚本~/scripts/check-releases.py
投递telegram:-1003995375876:5072 (H02 Oracle 频道)
状态✅ 启用,上次 2026-07-11 03:06 成功执行

🔄 重建命令

cronjob action='create' \
  name='daily-release-check' \
  schedule='0 3 * * *' \
  script='check-releases.py' \
  deliver='telegram:-1003995375876:5072'

🧩 内部结构

check-releases.py 是独立的 Agent 模式任务。脚本采集各上游项目的当前版本、升级项、异常等信息,Agent 读取脚本输出后生成结构化的版本检查报告投递到频道。

脚本相关文件目录:~/scripts/daily-release-check/


📝 Cron 作业管理命令

操作命令
查看所有任务cronjob action='list'
暂停任务cronjob action='pause' job_id='<id>'
恢复任务cronjob action='resume' job_id='<id>'
立即执行cronjob action='run' job_id='<id>'
删除任务cronjob action='remove' job_id='<id>'
更新参数cronjob action='update' job_id='<id>' name='...' schedule='...'