服务器运维与自动化体系全览

  • ~3.34K 字
  1. 1. 一、机器概况
  2. 2. 二、服务架构
  3. 3. 三、定时任务体系(15 个 cron)
    1. 3.1. 3.1 纯脚本组(no_agent,零 token,常开)
    2. 3.2. 3.2 Agent 组(消耗 token)
    3. 3.3. 3.3 no_agent 模式要点
  4. 4. 四、备份体系
    1. 4.1. 4.1 层级
    2. 4.2. 4.2 关键备份清单
  5. 5. 五、安全体系
  6. 6. 六、更新策略
    1. 6.1. 6.1 分级更新
    2. 6.2. 6.2 维护窗口约定
    3. 6.3. 6.3 更新流程
  7. 7. 七、Dashboard 运维
  8. 8. 八、工程教训
    1. 8.1. 8.1 磁盘管理
    2. 8.2. 8.2 终端纪律
    3. 8.3. 8.3 内存约束(1.8G)
  9. 9. 九、数据资产盘点

一台 2C / 1.8G 内存 / 40G 磁盘的阿里云 ECS,承载 Hermes Agent、量化系统、数据管道、文档处理等多个项目。本文全景式记录运维体系:服务架构、定时任务、备份、安全、更新策略与工程教训。

一、机器概况

  • 配置:2C / 1.8G 内存 / 40G 磁盘(阿里云)
  • 系统:Linux 5.10.134-19.6(Alibaba Cloud Linux 3)
  • 角色:单机多职——Hermes 主控 + 量化 + 数据工程 + 文档处理
  • 磁盘现状:40G,峰值 69%(26G 已用 / 12G 可用),kline_cache.db 占 3.9G

二、服务架构

服务 说明 状态
Hermes gateway 消息中枢,手动启动(无 systemd unit) 运行中
hermes-dashboard Web 控制台(9120 端口,systemd) 运行中
quant-screener.service 量化分析服务(systemd) 运行中
quant daemon 数据采集守护(PID 689) 运行中
cloudmonitor / aegis 阿里云监控/安全组件 运行中

三、定时任务体系(15 个 cron)

3.1 纯脚本组(no_agent,零 token,常开)

任务 时间 功能
早晚新闻聚合 6:00 / 21:00 财经新闻汇总推送飞书
冷数据归档 周日 3:00 OSS 低频存储转移
每日安全扫描 22:00 登录记录/密钥/异常进程
每日全面备份 23:55 配置+数据+源码打包
anti-stray-dashboard 30 分钟 Dashboard 存活守护
新闻采集 hourly 每小时 量化新闻增量入库

3.2 Agent 组(消耗 token)

任务 时间 说明
每日反思与记忆强化 23:40 消化对话 → 写记忆 → 自我审视
Skill/Profile 治理 周日 3:15/3:30 skill 盘点合并 / profile 健康
IMA 知识库同步 8:00 IMA → OSS 文档同步
oss-daily-sync 2:00 量化数据 OSS 同步
量化采集/训练/报告链 18:30-19:45 交易日收盘闭环

3.3 no_agent 模式要点

  • 非空 stdout 自动投递,空输出静默——「watchdog 模式」,适合阈值告警
  • 长任务日志重定向(> /tmp/*.log 2>&1),避免二进制污染投递
  • 例:news_v2_hourly.sh = 采集(日志落盘)+ stats(投递摘要)
  • 纯脚本任务不受峰谷调度限制——不花模型钱就不怕高峰

四、备份体系

4.1 层级

  1. 每日全面备份(23:55):Hermes 配置 + 量化数据 + 源码
  2. OSS 三桶:备份桶 / 资料桶 / 量化数据桶(IA 低频)
  3. 变更前手动备份:升级/改配置前 backup_pre_update/ 快照(config.yaml / .env / sshd_config 三件套)
  4. git 版本控制:quant-screener 全量留痕(132 个 py 文件)

4.2 关键备份清单

  • config.yaml / .env / sshd_config 三件套(备份目录 backup_pre_update/)
  • 源码完整备份(hermes_agent_backup_20260802,2.4G)
  • 模型注册表 + 数据文件(kline_cache.db 3.9G 定时 OSS 同步)

五、安全体系

  • SSH 加固(禁 root / 禁密码 / 仅公钥)——详见《安全加固》篇
  • 每日安全扫描 cron(22:00,登录记录/密钥/异常进程)
  • 密钥 immutable 锁定防写入(0 字节 + chattr +i)
  • 阿里云安全组 + 蠕虫告警监控(误报判定见安全篇)

六、更新策略

6.1 分级更新

  • 普通包:立即更新(dnf update --exclude='kernel*' --exclude='kernel-headers*')
    • 2026-08-02 更新 62 个普通包(含 redis/vim/glib2/libxml2 等安全更新)
  • 内核:推迟到维护窗口(重启中断采集)
    • 剩余 9 个内核包(19.6 → 19.7.1):kernel/kernel-core/kernel-devel/kernel-headers/kernel-modules/…

6.2 维护窗口约定

内核更新(9 包)+ gateway 重启(启用 responseAPI)一次做完。备份先行(backup_pre_update/)。

6.3 更新流程

1
备份关键配置 → dnf update(排除内核)→ 验证服务状态 → 内核留待窗口

验证项:sshd/redis active、gateway PID 不变、quant daemon 运行中、磁盘余量。

七、Dashboard 运维

  • hermes-dashboard(9120)承载 Web 界面,systemd 服务
  • 多个修复脚本应对反复故障:fix-dashboard / force-restart-dashboard / restart-gateway / webui_daily_restart
  • anti-stray-dashboard 每 30 分钟检查存活,防呆守护
  • 配套:cleanup-dashboard / cleanup-user-dashboard 清理脚本

八、工程教训

8.1 磁盘管理

40G 磁盘,峰值 69%。规则:

  • 长任务日志落 /tmp(不进项目目录)
  • 下载流式处理(下→传→删,不落本地)
  • 定期清理:归档死代码脚本(archive_20260811/ 50 个文件)、tempfile 用完即删

8.2 终端纪律

  • pkill -f 宽泛模式禁用(曾自伤,exit -15/-9 多次)——自杀式教训
  • systemctl 可能卡死(exit 124 先例)——操作前评估,必要时 timeout 包裹
  • 复杂内联引号命令被解析器硬拦(BLOCKED hardline)——改写为文件输出再 search_files
  • 长任务用 background=true + notify_on_complete,禁止仅后台不等待(静默丢失根因)

8.3 内存约束(1.8G)

  • 模型训练子进程隔离 + 定期 gc(见量化篇)
  • ClamAV 跑不动已卸载(改用外部扫描)
  • 大数据处理分批(下载流式、训练分批)

九、数据资产盘点

资产 位置 规模
量化行情库 /opt/quant-screener/kline_cache.db 8,488 标的 / 3.9G
新闻库 news_db_v2.db 11 万+ 条
模型库 models_custom/ 60+ 版本(v3 每日迭代)
课程数据 OSS 双桶 724 对象 / 86.6GB
会话历史 ~/.hermes/sessions/ 44+ 次(含 cron 会话)
Hermes 目录 ~/.hermes 3.7G(含源码 2.4G)
赞助喵
非常感谢您的喜欢!
赞助喵
分享这一刻
让朋友们也来瞅瞅!