Files
openclaw-backups/skills/openclaw-self-healing/scripts/memory-compaction.sh

51 lines
1.7 KiB
Bash

#!/bin/bash
# 주간 메모리 압축 스크립트
# 매주 일요일 23:00 실행
set -euo pipefail
MEMORY_DIR="$HOME/openclaw/memory"
ARCHIVE_DIR="$MEMORY_DIR/archive"
DATE=$(date '+%Y-%m-%d')
WEEK_AGO=$(date -v-7d '+%Y-%m-%d' 2>/dev/null || date -d '7 days ago' '+%Y-%m-%d')
echo "🗂️ 메모리 압축 시작: $DATE"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
# Archive 디렉토리 생성
mkdir -p "$ARCHIVE_DIR"
# 1. 7일 이상 된 daily notes 아카이브
echo "📁 7일 이상 된 daily notes 아카이브 중..."
find "$MEMORY_DIR" -maxdepth 1 -name "202[0-9]-[0-9][0-9]-[0-9][0-9].md" -mtime +7 | while read -r file; do
basename=$(basename "$file")
if [[ ! -f "$ARCHIVE_DIR/$basename" ]]; then
mv "$file" "$ARCHIVE_DIR/"
echo "$basename"
fi
done
# 2. 7일 이상 된 품질 체크 삭제
echo "🗑️ 7일 이상 된 품질 체크 삭제 중..."
find "$MEMORY_DIR" -maxdepth 1 -name "quality-check-*.md" -mtime +7 -delete -print | while read -r file; do
echo "$(basename "$file")"
done
# 3. 빈 파일 정리
echo "🧹 빈 파일 정리 중..."
find "$MEMORY_DIR" -maxdepth 1 -type f -empty -delete -print | while read -r file; do
echo "$(basename "$file")"
done
# 4. 통계
TOTAL_FILES=$(find "$MEMORY_DIR" -maxdepth 1 -type f | wc -l)
ARCHIVE_FILES=$(find "$ARCHIVE_DIR" -type f 2>/dev/null | wc -l)
TOTAL_SIZE=$(du -sh "$MEMORY_DIR" 2>/dev/null | cut -f1)
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "📊 메모리 압축 완료"
echo " - 현재 파일: $TOTAL_FILES개"
echo " - 아카이브: $ARCHIVE_FILES개"
echo " - 총 크기: $TOTAL_SIZE"