Claude Code 세션 데이터 손실: 윈도우 및 맥용 백업 스크립트

✍️ OpenClawRadar📅 게시일: June 7, 2026🔗 Source
Claude Code 세션 데이터 손실: 윈도우 및 맥용 백업 스크립트
Ad

r/ClaudeAI의 여러 사용자가 Claude Code가 세션 데이터를 조용히 손실한다고 보고합니다. 세션 제목은 사이드바에 남아 있지만 클릭하면 빈 기록이 나타납니다. 경고, 오류, 복구 없이 말이죠. 이는 컨텍스트 압축, 예기치 않은 종료 또는 스토리지 계층 문제 중에 발생하는 것으로 보입니다.

Ad

백업 솔루션

커뮤니티에서 작성한 스크립트는 ~/.claude에서 모든 Claude Code 데이터(sessions, projects, plans, drafts, memory)를 별도 폴더로 백업하며, Windows의 작업 스케줄러나 Mac의 launchd를 통해 매일 실행되고 7일간의 롤링 백업을 유지합니다.

Windows (PowerShell + 작업 스케줄러)

백업 폴더를 생성합니다:

mkdir C:\Users\%USERNAME%\ClaudeBackups

다음을 해당 폴더에 backup-claude-sessions.ps1로 저장합니다:

$ErrorActionPreference = "Stop"
$source = "$env:USERPROFILE\.claude"
$backupRoot = "$env:USERPROFILE\ClaudeBackups"
$logFile = Join-Path $backupRoot "backup.log"
$keepDays = 7
$timestamp = Get-Date -Format "yyyy-MM-dd_HHmmss"
$backupDir = Join-Path $backupRoot $timestamp
$dirs = @("sessions", "projects", "plans", "drafts", "memory")

function Write-Log($msg) { $line = "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - $msg" Add-Content -Path $logFile -Value $line -Encoding utf8 }

try { Write-Log "=== Backup started ===" New-Item -ItemType Directory -Path $backupDir -Force | Out-Null foreach ($d in $dirs) { $src = Join-Path $source $d if (Test-Path $src) { $dst = Join-Path $backupDir $d Copy-Item -Path $src -Destination $dst -Recurse -Force $count = (Get-ChildItem $dst -Recurse -File -ErrorAction SilentlyContinue | Measure-Object).Count Write-Log " Copied $d ($count files)" } else { Write-Log " Skipped $d (not found)" } } $size = (Get-ChildItem $backupDir -Recurse -File | Measure-Object -Property Length -Sum).Sum Write-Log " Total backup size: $([math]::Round($size/1MB, 2)) MB" $cutoff = (Get-Date).AddDays(-$keepDays) Get-ChildItem $backupRoot -Directory | Where-Object { $.Name -match '^\d{4}-\d{2}-\d{2}\d{6}$' -and $.CreationTime -lt $cutoff } | ForEach-Object { Remove-Item $.FullName -Recurse -Force -Confirm:$false Write-Log " Rotated old backup: $($.Name)" } Write-Log "=== Backup completed successfully ===" } catch { Write-Log "!!! BACKUP FAILED: $" exit 1 }

install-schedule.ps1을 만들고 관리자 권한으로 한 번 실행합니다:

$action = New-ScheduledTaskAction     -Execute "powershell.exe"
    -Argument "-ExecutionPolicy Bypass -WindowStyle Hidden -File "$env:USERPROFILE\ClaudeBackups\backup-claude-sessions.ps1""
$trigger = New-ScheduledTaskTrigger -Daily -At 8:00AM
$settings = New-ScheduledTaskSettingsSet     -AllowStartIfOnBatteries
    -DontStopIfGoingOnBatteries     -StartWhenAvailable Register-ScheduledTask
    -TaskName "ClaudeSessionsBackup"     -Action $action
    -Trigger $trigger     -Settings $settings
    -Description "Daily backup of Claude Code sessions" `
    -RunLevel Limited
Write-Host "Done! Runs daily at 8:00 AM." -ForegroundColor Green

설치 프로그램을 실행합니다:

powershell -ExecutionPolicy Bypass -File "C:\Users%USERNAME%\ClaudeBackups\install-schedule.ps1"

Mac (launchd + 셸 스크립트)

백업 폴더를 생성합니다:

mkdir -p /ClaudeBackups

/ClaudeBackups/backup-claude-sessions.sh로 저장합니다:

#!/bin/bash
set -euo pipefail
SOURCE="$HOME/.claude"
BACKUP_ROOT="$HOME/ClaudeBackups"
LOG_FILE="$BACKUP_ROOT/backup.log"
KEEP_DAYS=7
TIMESTAMP=$(date +"%Y-%m-%d_%H%M%S")
BACKUP_DIR="$BACKUP_ROOT/$TIMESTAMP"
DIRS=("sessions" "projects" "plans" "drafts" "memory")
log() { echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$LOG_FILE"; }
log "=== Backup started ==="
mkdir -p "$BACKUP_DIR"
for d in "${DIRS[@]}"; do
    src="$SOURCE/$d"
    if [ -d "$src" ]; then
        cp -R "$src" "$BACKUP_DIR/$d"
        count=$(find "$BACKUP_DIR/$d" -type f | wc -l | tr -d ' ')
        log " Copied $d ($count files)"
    else
        log " Skipped $d (not found)"
    fi
done
size=$(du -sb "$BACKUP_DIR" | cut -f1)
log " Total backup size: $(echo "scale=2; $size/1048576" | bc) MB"
find "$BACKUP_ROOT" -maxdepth 1 -type d -name "????-??-??_??????" -mtime +$KEEP_DAYS -exec rm -rf {} + -exec log " Rotated old backup: {}" ;
log "=== Backup completed successfully ==="

실행 권한을 부여하고 launchd를 통해 스케줄링합니다 (plist 설정은 원본 게시물 참조).

이 스크립트는 Claude Code와 완전히 독립적으로 실행되므로 Claude가 충돌하거나 데이터가 손실되어도 백업이 보존됩니다. 각 실행 결과는 backup.log에 기록되어 확인할 수 있습니다.

📖 전체 출처: r/ClaudeAI

Ad

👀 See Also

Git Worktree를 사용한 병렬 Claude 코드 세션을 위한 오픈소스 웹 UI
Tools

Git Worktree를 사용한 병렬 Claude 코드 세션을 위한 오픈소스 웹 UI

한 개발자가 git worktree를 사용하여 여러 Claude Code 세션을 병렬로 실행할 수 있는 CCUI라는 오픈소스 웹 UI를 구축했습니다. 이 도구는 브라우저를 통해 접근 가능한 로컬 웹 서버로 실행되며, 원격 개발을 위한 SSH 포트 포워딩을 지원합니다.

OpenClawRadar
Claude Code로 구축한 로컬 음성-텍스트 macOS 앱: Vext 사례 연구
Tools

Claude Code로 구축한 로컬 음성-텍스트 macOS 앱: Vext 사례 연구

한 개발자가 3개월 동안 Apple Neural Engine에서 Whisper를 사용하는 macOS 음성-텍스트 앱 Vext를 만들었습니다. Claude Code가 Rust/Swift FFI, Core ML 최적화 및 단축키 아키텍처를 도왔습니다. 이 앱은 완전히 오프라인에서 실행되며 60초 오디오를 약 400ms에 변환합니다.

OpenClawRadar
오픈소스 CLI는 Claude Haiku를 사용하여 Xero 비용 감사를 자동화합니다.
Tools

오픈소스 CLI는 Claude Haiku를 사용하여 Xero 비용 감사를 자동화합니다.

한 개발자가 Claude Haiku 4.5를 활용해 Xero 비용 감사를 자동화하는 오픈소스 Python CLI 도구를 공개했습니다. 이 도구는 '결정론적 코드를 먼저 적용하고, AI로 빈틈을 메운다'는 접근 방식을 따르며, 감사 실행당 비용을 몇 센트 수준으로 유지합니다.

OpenClawRadar
클로 컴팩터: LLM 파이프라인을 위한 14단계 토큰 압축 엔진
Tools

클로 컴팩터: LLM 파이프라인을 위한 14단계 토큰 압축 엔진

Claw Compactor는 14단계 Fusion Pipeline을 사용하여 LLM 추론 비용 없이 평균 54% 압축률을 달성하는 오픈소스 LLM 토큰 압축 엔진입니다. 코드, JSON, 로그, diff, 검색 결과에 대한 특화된 압축기를 포함하며 가역적 압축 기능을 제공합니다.

OpenClawRadar