Files
openclaw/scripts/memory-sync-to-remote.sh

45 lines
1.3 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
set -euo pipefail
WORKSPACE="/home/openclaw/.openclaw/workspace"
TMP_JSONL="/tmp/eva-memory-sync.jsonl"
REMOTE_HOST="eva_memory@192.168.0.135"
REMOTE_KEY="/home/openclaw/.ssh/id_ed25519_vps_openclaw_45158"
REMOTE_JSONL="/tmp/eva-memory-sync.jsonl"
LOG="$WORKSPACE/logs/memory-sync.log"
mkdir -p "$WORKSPACE/logs"
python3 - <<'PY' "$WORKSPACE" "$TMP_JSONL"
import json, sys
from pathlib import Path
ws=Path(sys.argv[1])
out=Path(sys.argv[2])
paths=[]
mem=ws/'MEMORY.md'
if mem.exists(): paths.append(mem)
for p in sorted((ws/'memory').glob('*.md')):
if 'dialogs' in p.parts:
continue
paths.append(p)
with out.open('w',encoding='utf-8') as f:
for p in paths:
try:
content=p.read_text(encoding='utf-8',errors='ignore')
except Exception:
continue
rec={
'source_path': str(p.relative_to(ws)),
'title': p.name,
'item_type': 'memory',
'content': content,
}
f.write(json.dumps(rec, ensure_ascii=False)+'\n')
print(f'prepared {len(paths)} files')
PY
scp -i "$REMOTE_KEY" "$TMP_JSONL" "$REMOTE_HOST:$REMOTE_JSONL" >/dev/null
ssh -i "$REMOTE_KEY" "$REMOTE_HOST" "/home/eva_memory/bin/import-memory-jsonl.sh $REMOTE_JSONL" >/dev/null
echo "[$(date -u +'%F %T UTC')] sync ok" >> "$LOG"