81 lines
2.8 KiB
Bash
Executable File
81 lines
2.8 KiB
Bash
Executable File
#!/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
|