整理备份:删除workspace冗余镜像、更新备份脚本 2026-03-28

This commit is contained in:
OpenClaw Backup
2026-03-28 20:05:29 +08:00
parent d09281e48c
commit 10622af38d
11 changed files with 59 additions and 19 deletions
+2 -11
View File
@@ -9,9 +9,6 @@ import re
import os
from datetime import datetime
# 加载环境变量
os.environ["SILICONFLOW_API_KEY"] = "sk-fpjdtxbxrhtekshircjhegstloxaodriekotjdyzzktyegcl"
def log(msg):
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"[{timestamp}] {msg}")
@@ -58,14 +55,8 @@ def main():
log("✅ 文件记忆已更新")
# 2. 保存向量记忆
os.chdir(os.path.expanduser("~/openclaw-memory-vector"))
subprocess.run([
"python3", "memory_cli.py", "add",
f"【自动保存】上下文使用量达到 {max_usage}%,系统自动保存记忆。时间: {timestamp}",
"--tag", "auto-save,context-90"
], capture_output=True, text=True)
log("✅ 向量记忆已保存")
# 2. 文件记忆已保存向量记忆统一走 main.sqlite
log("✅ 文件记忆已更新")
log("✅ 记忆保存完成")
else:
+2 -8
View File
@@ -6,9 +6,6 @@
set -e
# 加载环境变量
export SILICONFLOW_API_KEY="sk-fpjdtxbxrhtekshircjhegstloxaodriekotjdyzzktyegcl"
LOG_FILE="/tmp/openclaw/context_memory_check.log"
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
@@ -65,11 +62,8 @@ if [ "$MAX_USAGE" -ge 90 ]; then
echo -e "\n## 🔄 上下文自动保存 (${TIMESTAMP})\n\n**触发原因**: 上下文使用量达到 ${MAX_USAGE}%\n" >> "$MEMORY_FILE"
log "✅ 文件记忆已更新"
# 2. 保存向量记忆
cd ~/openclaw-memory-vector && python3 memory_cli.py add \
"【自动保存】上下文使用量达到 ${MAX_USAGE}%,系统自动保存记忆。时间: ${TIMESTAMP}" \
--tag "auto-save,context-90" 2>&1 | tail -1
log "✅ 向量记忆已保存"
# 2. 文件记忆已保存向量记忆统一走 main.sqlite
log "✅ 文件记忆已更新"
log "✅ 记忆保存完成"
else
+55
View File
@@ -0,0 +1,55 @@
#!/bin/bash
# ============================================================================
# 向量记忆增量备份脚本
# 策略:每日一个快照,通过 rsync --link-dest 指向前一天快照
# 文件内容未变时使用硬链接(不占额外空间)
# 保留最近 14 个每日快照
# ============================================================================
set -e
SOURCE="$HOME/.openclaw/memory/main.sqlite"
BACKUP_DIR="$HOME/openclaw-backup/vector_memory/snapshots"
TODAY=$(date +%Y%m%d)
YESTERDAY=$(date -d "yesterday" +%Y%m%d)
SNAPSHOT_TODAY="$BACKUP_DIR/$TODAY"
SNAPSHOT_YESTERDAY="$BACKUP_DIR/$YESTERDAY"
mkdir -p "$BACKUP_DIR"
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] [vector_backup] $1"
}
# ---- 检查源文件 ----
if [ ! -f "$SOURCE" ]; then
log "ERROR: 源文件不存在 $SOURCE"
exit 1
fi
# ---- 执行增量/全量备份 ----
if [ -n "$SNAPSHOT_YESTERDAY" ] && [ -d "$SNAPSHOT_YESTERDAY" ]; then
# 有昨天快照:增量硬链接
mkdir -p "$SNAPSHOT_TODAY"
rsync -a --link-dest="$SNAPSHOT_YESTERDAY" "$SOURCE" "$SNAPSHOT_TODAY/main.sqlite"
log "增量备份完成 → $SNAPSHOT_TODAY/main.sqlite ($(du -h "$SNAPSHOT_TODAY/main.sqlite" | cut -f1))"
else
# 无昨天快照(首次或跨天后首次):全量
mkdir -p "$SNAPSHOT_TODAY"
cp "$SOURCE" "$SNAPSHOT_TODAY/main.sqlite"
log "全量备份完成 → $SNAPSHOT_TODAY/main.sqlite ($(du -h "$SNAPSHOT_TODAY/main.sqlite" | cut -f1))"
fi
# ---- 清理 14 天前的快照 ----
SNAP_COUNT=$(ls -d "$BACKUP_DIR"/20* 2>/dev/null | wc -l)
if [ "$SNAP_COUNT" -gt 14 ]; then
ls -dt "$BACKUP_DIR"/20* | tail -n +15 | xargs -r rm -rf
log "已清理 14 天前的旧快照"
fi
# ---- 打印当前快照列表 ----
log "当前每日快照(共 $SNAP_COUNT 个):"
for d in $(ls -dt "$BACKUP_DIR"/20* 2>/dev/null); do
log " $(basename $d) ($(du -sh "$d" | cut -f1))"
done
log "总磁盘占用: $(du -sh "$BACKUP_DIR" | cut -f1)"
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.