整理备份:删除workspace冗余镜像、更新备份脚本 2026-03-28
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
Executable
+55
@@ -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.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Reference in New Issue
Block a user