每日备份 2026-06-10 12:57:13
This commit is contained in:
1 parent
fda2ccb8c2
commit
3d2e638c6a
244 files changed
+58890
-3
No files matched your search
Executable
+80
@@ -0,0 +1,80 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# 每日故障报告生成脚本
|
||||
# 用途: 每天生成故障统计和工作总结
|
||||
#
|
||||
|
||||
REPORT_FILE="/var/log/openclaw/daily-report.log"
|
||||
ALERT_LOG="/var/log/openclaw-monitor/alerts.log"
|
||||
DATE=$(date +%Y-%m-%d)
|
||||
|
||||
echo "========================================" >> "$REPORT_FILE"
|
||||
echo "每日故障报告 - $DATE" >> "$REPORT_FILE"
|
||||
echo "========================================" >> "$REPORT_FILE"
|
||||
echo "" >> "$REPORT_FILE"
|
||||
|
||||
# 1. 故障统计 (修复 grep -c 多行问题)
|
||||
echo "【故障统计】" >> "$REPORT_FILE"
|
||||
echo "---------------------------" >> "$REPORT_FILE"
|
||||
CRITICAL=$(grep "$DATE.*CRITICAL" "$ALERT_LOG" 2>/dev/null | wc -l || echo "0")
|
||||
ALERT=$(grep "$DATE.*ALERT" "$ALERT_LOG" 2>/dev/null | wc -l || echo "0")
|
||||
AUTO=$(grep "$DATE.*AUTO" "$ALERT_LOG" 2>/dev/null | wc -l || echo "0")
|
||||
|
||||
echo "CRITICAL: $CRITICAL 条" >> "$REPORT_FILE"
|
||||
echo "ALERT: $ALERT 条" >> "$REPORT_FILE"
|
||||
echo "AUTO: $AUTO 条" >> "$REPORT_FILE"
|
||||
echo "" >> "$REPORT_FILE"
|
||||
|
||||
# 2. 系统状态
|
||||
echo "【系统状态】" >> "$REPORT_FILE"
|
||||
echo "---------------------------" >> "$REPORT_FILE"
|
||||
if pgrep -f "openclaw-gateway" > /dev/null; then
|
||||
echo "Gateway: 运行中" >> "$REPORT_FILE"
|
||||
else
|
||||
echo "Gateway: 未运行" >> "$REPORT_FILE"
|
||||
fi
|
||||
|
||||
MEM_USAGE=$(free -h | grep Mem | awk '{print $3 "/" $2}')
|
||||
echo "内存: $MEM_USAGE" >> "$REPORT_FILE"
|
||||
|
||||
DISK_USAGE=$(df -h / | tail -1 | awk '{print $5 " used"}')
|
||||
echo "磁盘: $DISK_USAGE" >> "$REPORT_FILE"
|
||||
echo "" >> "$REPORT_FILE"
|
||||
|
||||
# 3. 记忆系统状态
|
||||
echo "【记忆系统】" >> "$REPORT_FILE"
|
||||
echo "---------------------------" >> "$REPORT_FILE"
|
||||
DB="/root/.openclaw/workspace/memory/memory.db"
|
||||
if [ -f "$DB" ]; then
|
||||
USER_MEM=$(sqlite3 "$DB" "SELECT COUNT(*) FROM memories WHERE layer='user'" 2>/dev/null || echo "0")
|
||||
SESSION_MEM=$(sqlite3 "$DB" "SELECT COUNT(*) FROM memories WHERE layer='session'" 2>/dev/null || echo "0")
|
||||
AGENT_MEM=$(sqlite3 "$DB" "SELECT COUNT(*) FROM memories WHERE layer='agent'" 2>/dev/null || echo "0")
|
||||
INSIGHTS=$(sqlite3 "$DB" "SELECT COUNT(*) FROM insights" 2>/dev/null || echo "0")
|
||||
|
||||
echo "User Memory: $USER_MEM 条" >> "$REPORT_FILE"
|
||||
echo "Session Memory: $SESSION_MEM 条" >> "$REPORT_FILE"
|
||||
echo "Agent Memory: $AGENT_MEM 条" >> "$REPORT_FILE"
|
||||
echo "Insights: $INSIGHTS 条" >> "$REPORT_FILE"
|
||||
fi
|
||||
echo "" >> "$REPORT_FILE"
|
||||
|
||||
# 4. 计划任务状态
|
||||
echo "【计划任务】" >> "$REPORT_FILE"
|
||||
echo "---------------------------" >> "$REPORT_FILE"
|
||||
openclaw cron list 2>/dev/null | grep -E "ok|idle" | head -5 >> "$REPORT_FILE" || echo "无任务" >> "$REPORT_FILE"
|
||||
echo "" >> "$REPORT_FILE"
|
||||
|
||||
# 5. 总结
|
||||
echo "【总结】" >> "$REPORT_FILE"
|
||||
echo "---------------------------" >> "$REPORT_FILE"
|
||||
TOTAL=$((CRITICAL + ALERT + AUTO))
|
||||
if [ "$TOTAL" -lt 10 ]; then
|
||||
echo "系统运行正常,故障较少。" >> "$REPORT_FILE"
|
||||
elif [ "$TOTAL" -lt 50 ]; then
|
||||
echo "系统运行一般,存在一定数量的告警。" >> "$REPORT_FILE"
|
||||
else
|
||||
echo "系统运行需关注,故障数量较多。" >> "$REPORT_FILE"
|
||||
fi
|
||||
echo "" >> "$REPORT_FILE"
|
||||
|
||||
echo "报告生成完成: $REPORT_FILE"
|
||||
Reference in new issue
Block a user