每日备份 2026-06-10 12:57:13

This commit is contained in:
root-backup committed 2026-06-10 12:57:14 +08:00
1 parent fda2ccb8c2
commit 3d2e638c6a
244 files changed
+58890 -3

No files matched your search

+80
View File
@@ -0,0 +1,80 @@
#!/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