Files
my-project/config/openclaw/scripts/schedule-learning.sh
T

81 lines
2.8 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# ============================================================================
# 定时后台学习 - crontab 管理
# ============================================================================
# 添加定时任务
add_cron() {
echo "添加定时学习任务..."
# 青龙:每小时学习1轮
(crontab -l 2>/dev/null | grep -v "qinglong-auto-learning"; echo "0 * * * * /root/.openclaw/scripts/auto-learning.sh 1 >> /var/log/openclaw/sleep-learning/qinglong-cron.log 2>&1") | crontab -
# 守护者:每2小时学习1轮
(crontab -l 2>/dev/null | grep -v "guardian-auto-learning"; echo "0 */2 * * * /root/.openclaw/scripts/auto-learning.sh 1 >> /var/log/openclaw/sleep-learning/guardian-cron.log 2>&1") | crontab -
echo "✅ 定时任务已添加"
}
# 移除定时任务
remove_cron() {
echo "移除定时学习任务..."
crontab -l 2>/dev/null | grep -v "auto-learning" | crontab -
echo "✅ 已移除"
}
# 立即触发学习(不等待cron)
trigger_now() {
local robot="${1:-all}"
if [ "$robot" = "qinglong" ] || [ "$robot" = "all" ]; then
echo "🚀 立即触发青龙学习..."
nohup /root/.openclaw/scripts/auto-learning.sh 1 > /tmp/qinglong-trigger.log 2>&1 &
echo "青龙 PID: $!"
fi
if [ "$robot" = "guardian" ] || [ "$robot" = "all" ]; then
echo "🚀 立即触发守护者学习..."
nohup /root/.openclaw/scripts/auto-learning.sh 1 > /tmp/guardian-trigger.log 2>&1 &
echo "守护者 PID: $!"
fi
}
# 查看cron状态
status() {
echo "╔════════════════════════════════════════════════════╗"
echo "║ 定时学习任务状态 ║"
echo "╚════════════════════════════════════════════════════╝"
echo ""
echo "📋 当前 Cron 任务:"
crontab -l 2>/dev/null | grep "auto-learning" || echo " 无定时任务"
echo ""
echo "🔄 运行中的学习进程:"
ps aux | grep "auto-learning.sh" | grep -v grep || echo " 无运行中的进程"
echo ""
echo "📊 最近学习记录:"
echo "青龙: $(tail -3 /var/log/openclaw/sleep-learning/qinglong-cron.log 2>/dev/null | head -1 || echo '无')"
echo "守护者: $(tail -3 /var/log/openclaw/sleep-learning/guardian-cron.log 2>/dev/null | head -1 || echo '无')"
}
# 主程序
case "$1" in
add)
add_cron
;;
remove)
remove_cron
;;
trigger)
trigger_now "${2:-all}"
;;
status)
status
;;
*)
echo "用法: $0 {add|remove|trigger [qinglong|guardian]|status}"
;;
esac