Cron 评估器

Automation

Cron 评估器 — 分析和评分 cron 任务,用于健康检查、资源使用、冲突检测和弹性改进。 使用场景:(1) 审计 cron 任务,(2) 检测时间冲突,(3) 优化 cron 性能,(4) 规划 systemd 迁移。

Install

openclaw skills install cron-evaluator-zh

Cron 评估器

从 4 个维度评估 cron 任务的健康状况:时间、资源、弹性、相关性。

4 个维度

维度检查项分数范围
时间午夜冲突、频率、抖动0-1
资源重型命令 (torch, docker, ollama)0-1
弹性日志、flock、超时、错误处理0-1
相关性Cron vs systemd timer 推荐0-1

使用方法

# 扫描所有 cron 任务
python3 cron_evaluator_v3.py --scan

# 健康检查
python3 cron_evaluator_v3.py --health

# 改进建议
python3 cron_evaluator_v3.py --suggest

健康阈值

分数状态
>80%🟢 健康
60-80%🟡 需要改进
<60%🔴 危险

主要功能

时间冲突检测

# 两个 cron 都在 00:00 → 建议添加抖动
if cron1['time'] == '0 0 * * *' and cron2['time'] == '0 0 * * *':
    suggest("添加抖动: sleep $((RANDOM % 60))")

资源签名

重型命令 = ['torch', 'tensorflow', 'ollama', 'docker']
if any(h in command for h in 重型命令):
    score -= 0.3  # 资源消耗大

弹性验证

检查项 = {
    '日志': '>> /var/log/...' in command or '2>' in command,
    'flock': 'flock' in command,
    '超时': 'timeout' in command,
    '错误处理': '||' in command
}

抖动实现

# 之前(冲突风险)
0 2 * * * /path/to/script.sh

# 之后(带抖动)
0 2 * * * sleep $((RANDOM % 60)) && /path/to/script.sh

文件结构

cron-evaluator/
├── SKILL.md              # 本文件
├── scripts/
│   ├── cron_evaluator.py      # v1 (基础)
│   ├── cron_evaluator_v2.py    # v2 (增强)
│   ├── cron_evaluator_v3.py    # v3 (带 KAN)
│   └── train_cron_kan.py       # KAN 训练脚本
├── data/
│   └── cron_training.json       # 训练数据集
└── models/
    └── cron_kan.pt             # 训练好的 KAN 模型

KAN 模型

Cron KAN (16→32→16→8→4→3) 从调度和命令模式中提取 16 个特征来预测 cron 任务质量。