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

r/ClaudeAI의 여러 사용자가 Claude Code가 세션 데이터를 조용히 손실한다고 보고합니다. 세션 제목은 사이드바에 남아 있지만 클릭하면 빈 기록이 나타납니다. 경고, 오류, 복구 없이 말이죠. 이는 컨텍스트 압축, 예기치 않은 종료 또는 스토리지 계층 문제 중에 발생하는 것으로 보입니다.
백업 솔루션
커뮤니티에서 작성한 스크립트는 ~/.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
👀 See Also

OpenClaw 설치 문제 해결하기
사용자들은 openclaw.ai와 openclawd.ai 사이에서 설치 문제를 겪으며, 각 사이트가 서로 다른 설치 명령어를 제공합니다.

로컬 MCP 메모리 시스템과 AI 대화를 위한 통합 기능
한 개발자가 AI 클라이언트를 위한 지속적인 로컬 메모리를 제공하는 MCP 서버를 구축했습니다. 이 시스템은 6시간마다 Qwen 2.5-7B를 사용하여 대화를 구조화된 지식 문서로 통합하며, 시맨틱 중복 제거, 적응형 점수 부여, FAISS 벡터 검색 기능을 갖추고 하드웨어에서 완전히 로컬로 실행됩니다.

TechDebtMCP v2.0.0: 14개 언어에 걸친 기술 부채 분석을 위한 MCP 서버
TechDebtMCP v2.0.0는 Claude를 코드베이스에 연결하여 JS/TS, Python, Java, Swift, Kotlin, Go, Rust, C/C++, C#, Ruby, PHP를 포함한 14개 프로그래밍 언어에서 기술 부채를 찾고, 측정하고, 우선순위를 정하는 MCP 서버입니다.

에이전트 이미지 스킬: Claude 코드 에이전트를 위한 간편한 이미지 호스팅
한 개발자가 Claude Code 에이전트가 생성한 차트, 스크린샷, 목업과 같은 이미지를 저장할 곳이 없는 문제를 해결하기 위해 https://images.labnocturne.com에 간단한 이미지 호스팅 서비스를 구축했습니다. 이 서비스는 curl을 통해 즉시 테스트 키를 제공하고, 파일을 7일 후 자동 삭제하며, 업로드, 파일 목록 조회, 삭제를 위한 Claude Code MCP 스킬을 포함하고 있습니다.