Files
openclaw-backups/skills/openclaw-self-healing/scripts/config-backup.sh

38 lines
968 B
Bash

#!/usr/bin/env bash
# Config Backup Script - 설정 변경 시 자동 백업
# Usage: config-backup.sh [label]
set -euo pipefail
CONFIG_FILE="$HOME/.openclaw/openclaw.json"
BACKUP_DIR="$HOME/openclaw/config-history"
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
LABEL="${1:-auto}"
# Backup directory 없으면 생성
mkdir -p "$BACKUP_DIR"
# Config 파일 존재 확인
if [ ! -f "$CONFIG_FILE" ]; then
echo "❌ Config file not found: $CONFIG_FILE"
exit 1
fi
# Backup 생성
BACKUP_FILE="$BACKUP_DIR/${TIMESTAMP}-${LABEL}.json"
cp "$CONFIG_FILE" "$BACKUP_FILE"
# 파일 크기 확인
SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
echo "✅ Config backup created: $BACKUP_FILE ($SIZE)"
# 30일 이상 된 백업 자동 삭제
find "$BACKUP_DIR" -name "*.json" -type f -mtime +30 -delete 2>/dev/null || true
# 최근 5개 백업 목록
echo ""
echo "📋 Recent backups:"
ls -lt "$BACKUP_DIR"/*.json 2>/dev/null | head -5 | awk '{print " - " $9 " (" $6" "$7" "$8")"}'
exit 0