튜토리얼 카테고리 Skills 소개
ZH EN JA KO
운영 모니터링

OpenClaw 데이터 백업 및 재해 복구 전략

· 12 분 소요

서문

OpenClaw 운영 과정에서 설정 파일, API 키, 대화 기록, 스킬 설정 등 다양한 중요 데이터가 생성됩니다. 서버 장애나 오조작으로 데이터가 손실되면 복구 비용이 매우 높습니다. 이 글에서는 완벽한 백업 전략을 수립하고, 재해 발생 시 신속하게 서비스를 복구하는 방법을 상세히 설명합니다.

1. 백업이 필요한 데이터

1.1 데이터 목록

데이터 유형 기본 경로 중요도 변경 빈도
주 설정 파일 ~/.config/openclaw/openclaw.json5 매우 높음 낮음
환경 변수 설정 ~/.config/openclaw/.env 매우 높음 낮음
채널 자격 증명 ~/.openclaw/credentials/ 매우 높음 낮음
세션 데이터 ~/.openclaw/sessions/ 높음 높음
스킬 설정 ~/.openclaw/skills/ 중간 중간
지식 베이스 데이터 ~/.openclaw/knowledge/ 높음 중간
SSL 인증서 ~/.openclaw/ssl/ 높음 낮음
로그 파일 ~/.local/share/openclaw/logs/ 낮음 높음

1.2 데이터 용량 확인

# 각 데이터 디렉토리의 디스크 사용량 확인
du -sh ~/.config/openclaw/
du -sh ~/.openclaw/sessions/
du -sh ~/.openclaw/skills/
du -sh ~/.openclaw/knowledge/
du -sh ~/.local/share/openclaw/logs/

2. 수동 백업

2.1 전체 백업

# 백업 디렉토리 생성
BACKUP_DIR="/backup/openclaw/$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"

# 설정 파일 백업
cp -r ~/.config/openclaw/ "$BACKUP_DIR/config/"

# 운영 데이터 백업
cp -r ~/.openclaw/ "$BACKUP_DIR/data/"

# 백업 압축
cd /backup/openclaw/
tar -czf "openclaw-backup-$(date +%Y%m%d_%H%M%S).tar.gz" "$(date +%Y%m%d_%H%M%S)/"

echo "백업 완료: $BACKUP_DIR"

2.2 핵심 설정만 백업

가장 중요한 설정만 백업하면 됩니다 (새 서버로 마이그레이션 시 가장 자주 사용):

# 설정 내보내기
openclaw config export > ~/openclaw-config-backup.json

# 또는 핵심 파일 수동 패키징
tar -czf openclaw-core-backup.tar.gz \
  ~/.config/openclaw/openclaw.json5 \
  ~/.config/openclaw/.env \
  ~/.openclaw/credentials/

2.3 openclaw backup 명령 사용

OpenClaw에는 백업 명령이 내장되어 있어 원클릭으로 완료할 수 있습니다:

# 전체 백업 (설정+데이터)
openclaw backup create

# 설정만 백업
openclaw backup create --config-only

# 출력 경로 지정
openclaw backup create --output /backup/openclaw-20260314.tar.gz

# 백업 내용 확인
openclaw backup list

3. 자동 정기 백업

3.1 Cron을 사용한 정기 백업

자동 백업 스크립트를 생성합니다:

#!/bin/bash
# /usr/local/bin/openclaw-backup.sh

BACKUP_ROOT="/backup/openclaw"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_ROOT/openclaw-$DATE.tar.gz"
KEEP_DAYS=30

# 백업 디렉토리 생성
mkdir -p "$BACKUP_ROOT"

# 백업 실행
openclaw backup create --output "$BACKUP_FILE"

if [ $? -eq 0 ]; then
    echo "[$(date)] 백업 성공: $BACKUP_FILE" >> /var/log/openclaw-backup.log
else
    echo "[$(date)] 백업 실패!" >> /var/log/openclaw-backup.log
    # 알림 전송
    curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
        -d chat_id="$CHAT_ID" \
        -d text="OpenClaw 백업이 실패했습니다. 확인해 주세요!"
    exit 1
fi

# 오래된 백업 정리
find "$BACKUP_ROOT" -name "openclaw-*.tar.gz" -mtime +$KEEP_DAYS -delete
echo "[$(date)] ${KEEP_DAYS}일 이전의 오래된 백업을 정리했습니다" >> /var/log/openclaw-backup.log
chmod +x /usr/local/bin/openclaw-backup.sh

# 정기 작업 설정: 매일 새벽 2시 실행
crontab -e
# 추가: 0 2 * * * /usr/local/bin/openclaw-backup.sh

3.2 원격 저장소로 백업

로컬 백업만으로는 디스크 장애를 방지할 수 없으므로, 원격 저장소로 동기화하는 것을 권장합니다:

# 원격 서버로 동기화 (rsync를 통해)
rsync -avz /backup/openclaw/ user@backup-server:/remote-backup/openclaw/

# S3 호환 스토리지로 동기화
aws s3 sync /backup/openclaw/ s3://my-bucket/openclaw-backup/ --storage-class STANDARD_IA

# Backblaze B2로 동기화
b2 sync /backup/openclaw/ b2://my-bucket/openclaw-backup/

백업 스크립트 끝에 원격 동기화 단계를 추가합니다:

# openclaw-backup.sh 끝에 추가
rsync -avz --delete "$BACKUP_ROOT/" user@backup-server:/remote-backup/openclaw/
echo "[$(date)] 원격 동기화 완료" >> /var/log/openclaw-backup.log

3.3 백업 암호화

백업에 민감한 정보(API 키 등)가 포함된 경우 암호화를 권장합니다:

# GPG로 백업 암호화
gpg --symmetric --cipher-algo AES256 "$BACKUP_FILE"
rm "$BACKUP_FILE"  # 암호화되지 않은 백업 삭제

# 복호화 시
gpg --decrypt "$BACKUP_FILE.gpg" > "$BACKUP_FILE"

4. 재해 복구

4.1 복구 절차

백업에서 복구해야 할 때 다음 단계를 따릅니다:

# 1. OpenClaw 설치 (새 서버인 경우)
npm install -g openclaw

# 2. 현재 서비스 중지 (실행 중인 경우)
openclaw stop

# 3. openclaw backup restore 명령 사용
openclaw backup restore /backup/openclaw-20260314.tar.gz

# 또는 수동 복구
tar -xzf /backup/openclaw-20260314.tar.gz -C /tmp/openclaw-restore/
cp -r /tmp/openclaw-restore/config/* ~/.config/openclaw/
cp -r /tmp/openclaw-restore/data/* ~/.openclaw/

# 4. 설정 검증
openclaw config validate

# 5. 서비스 시작
openclaw up -d

# 6. 상태 확인
openclaw doctor
curl -s http://localhost:18789/health | jq .

4.2 부분 복구

특정 데이터만 복구해야 할 때도 있습니다:

# 설정 파일만 복구
openclaw backup restore /backup/openclaw-20260314.tar.gz --config-only

# 세션 데이터만 복구
openclaw backup restore /backup/openclaw-20260314.tar.gz --sessions-only

# 지식 베이스만 복구
openclaw backup restore /backup/openclaw-20260314.tar.gz --knowledge-only

4.3 서버 간 마이그레이션

OpenClaw을 한 서버에서 다른 서버로 마이그레이션합니다:

# 기존 서버에서
openclaw backup create --output /tmp/openclaw-migration.tar.gz
scp /tmp/openclaw-migration.tar.gz user@new-server:/tmp/

# 새 서버에서
npm install -g openclaw
openclaw backup restore /tmp/openclaw-migration.tar.gz
openclaw up -d

# 모든 채널이 정상적으로 연결되었는지 확인
openclaw status

5. 백업 전략 권장사항

5.1 계층적 백업 전략

계층 빈도 보존 기간 내용 저장 위치
일일 백업 매일 30일 전체 백업 로컬 + 원격
주간 백업 매주 일요일 90일 전체 백업 원격 스토리지
설정 변경 백업 변경 시마다 영구 설정만 Git 저장소

5.2 설정 파일 버전 관리

Git을 사용한 설정 파일 변경 관리를 강력히 권장합니다:

# Git 저장소 초기화
cd ~/.config/openclaw
git init
echo ".env" >> .gitignore  # 민감한 환경 변수 제외
git add .
git commit -m "Initial OpenClaw config"

# 설정 수정 후 매번
git add -A
git commit -m "모델 설정을 claude-3.5-sonnet으로 업데이트"

# 프라이빗 저장소로 푸시
git remote add origin [email protected]:yourname/openclaw-config.git
git push -u origin main

5.3 정기 백업 검증

백업을 검증하지 않으면 백업이 없는 것과 같습니다. 매월 한 번 복구 훈련을 실행하는 것을 권장합니다:

# 테스트 환경에서 복구 시도
docker run -it --rm -v /backup/openclaw/latest.tar.gz:/backup.tar.gz node:20 bash
npm install -g openclaw
openclaw backup restore /backup.tar.gz
openclaw config validate

신뢰할 수 있는 백업 전략을 수립하고 실행하는 것은 OpenClaw 서비스의 장기적인 안정 운영을 보장하는 기반입니다. 데이터가 손실된 후에야 백업의 중요성을 깨닫지 마세요.

OpenClaw는 무료 오픈소스 개인 AI 어시스턴트로, WhatsApp, Telegram, Discord 등 다양한 플랫폼을 지원합니다