백업 및 복구 가이드
서버 운영에서 가장 큰 위험은 데이터 손실입니다.
정기적인 백업 전략을 수립해야 장애·랜섬웨어·실수에 의한 손실을 방지할 수 있습니다.
백업 전략 — 3-2-1 규칙
업계 표준인 3-2-1 백업 전략은 가장 검증된 방식입니다.
총 3개의 사본
원본 1개 + 백업 2개로 총 3벌의 데이터를 유지합니다.
2개의 다른 매체
서버 디스크 + 외부 스토리지(NAS, 클라우드) 등 매체를 분산합니다.
1개는 원격지 보관
물리적으로 분리된 위치(외부 클라우드)에 1개를 보관합니다.
실전 팁: 데이터 변경이 잦으면 일 1회 자동 백업, 정적 데이터라면 주 1회를 기준으로 시작하세요. 백업본은 최소 7일 ~ 30일 보관하는 것이 일반적입니다.
Ubuntu 자동 백업
📦 1. tar 로 디렉토리 압축 백업
/var/www,/etc 등 중요 폴더를 단일 압축 파일로 만듭니다.
$tar -czf /backup/www-$(date +%Y%m%d).tar.gz /var/www🔁 2. rsync 로 증분 동기화
변경된 파일만 복사하므로 빠르고, 외부 백업 서버로 직접 전송할 수 있습니다.
$rsync -avz --delete /var/www/ [email protected]:/backup/www/--delete: 원본에 없는 파일을 백업본에서도 삭제(미러링).
-z: 전송 중 압축, -a: 권한·타임스탬프 보존
⏰ 3. cron 으로 자동화 (매일 새벽 3시)
crontab -e로 편집기 진입 후 한 줄 추가:
0 3 * * * tar -czf /backup/www-$(date +\%Y\%m\%d).tar.gz /var/www주의: cron 안에서는 % 가 줄바꿈 의미를 가지므로 \%로 이스케이프 필요.
🗄️ 4. MySQL/PostgreSQL 데이터베이스 백업
MySQL/MariaDB
$mysqldump -u root -p mydb > /backup/mydb-$(date +%Y%m%d).sqlPostgreSQL
$pg_dump mydb > /backup/mydb-$(date +%Y%m%d).sqlWindows Server 백업
📁 1. Robocopy 로 폴더 미러링
Windows 기본 도구로, 변경된 파일만 빠르게 복사합니다.
robocopy C:\data D:\backup /MIR /R:1 /W:5 /LOG:C:\backup\robocopy.log/MIR: 미러링 (원본=백업본), /R:1: 실패 시 재시도 1회, /W:5: 재시도 대기 5초
⏰ 2. 작업 스케줄러로 자동화
- 시작 메뉴 → 작업 스케줄러 실행
- 오른쪽 패널에서 "기본 작업 만들기" 클릭
- 이름:
Daily Backup입력 - 트리거: 매일 선택, 시간 지정 (예: 03:00)
- 동작: 프로그램 시작 →
robocopy.exe, 인수 입력
💿 3. Windows Server Backup (전체 시스템)
OS·시스템 상태까지 통째로 백업하려면 Windows Server 기본 기능을 사용합니다.
서버 관리자역할 및 기능 추가Windows Server Backup 설치 후 제어판에서 일정 백업을 구성합니다.
복구 절차
Ubuntu (tar 복원)
$tar -xzf /backup/www-20260101.tar.gz -C /Windows (Robocopy 역방향)
robocopy D:\backup C:\data /MIR중요: 백업이 정상적으로 복원되는지 월 1회 이상 모의 복구 테스트를 진행해주세요. 백업 파일 손상은 사고 발생 시점에서야 발견되는 경우가 많습니다.
백업 운영 체크리스트
- ✓스토리지 용량 모니터링: 백업 디렉토리 용량을 주간 단위로 점검하세요.
- ✓오래된 백업 자동 정리: 30일 초과 백업은
find /backup -mtime +30 -delete로 정리. - ✓암호화: 민감 데이터는
gpg또는 압축 암호로 보호. - ✓외부 보관: AWS S3, Backblaze B2, NAS 등 별도 위치에 1부 이상 보관.
- ✓실패 알림: cron/스케줄러 결과를 이메일·슬랙으로 받도록 구성.