맥북 홈서버 데이터 자동 백업 (Mac → NAS)

백업 개요

  • 목적: 맥북의 Docker 컨테이너 데이터(DB, 설정파일 등)를 시놀로지 NAS로 매일 자동 백업
  • 방식: rsync를 이용한 미러링 (변경된 파일만 전송 + 원본 삭제 시 백업본도 삭제)
  • 주기: 매일 새벽 04:00 자동 실행
  • 경로: /Users/chayoung/docker//Volumes/Backup/02_MacDocker/

1. 사전 준비 (NAS 마운트)

맥북이 재부팅되어도 백업 경로가 유지되도록 설정해야 함.

  1. SMB 연결:
    • Finder에서 Cmd + K
    • 주소: smb://[NAS_IP]/Backup (키체인 암호 저장 필수)
  2. 로그인 항목 추가:
    • 시스템 설정 > 일반 > 로그인 항목 > '로그인 시 열기'
    • 마운트된 Backup 볼륨을 드래그해서 추가.

2. 백업 스크립트 생성

#!/bin/bash


# --- [설정] ---
# 1. 원본 및 대상 경로
SOURCE_DIR="/Users/chayoung/docker/"
DEST_DIR="/Volumes/Backup/02_MacDocker/"
LOG_FILE="/Users/chayoung/docker/backup.log"
  
# 2. NAS 재연결 정보 (중요: 정보를 정확히 입력하세요)
NAS_USER="chayoung"
NAS_PW="chaShin!3!2"
NAS_IP="chayoung_kr" # 시놀로지 IP 주소
NAS_SHARE="Backup" # 공유 폴더 이름

# 현재 시간 변수
NOW=$(date "+%Y-%m-%d %H:%M:%S")


# --- [실행 로직] ---
# 1. 마운트 확인 및 재연결 시도
if [ ! -d "$DEST_DIR" ]; then
	echo "[$NOW] ⚠️ 드라이브 미연결. 재연결을 시도합니다..." >> $LOG_FILE

	# 마운트 포인트 폴더가 없으면 생성
	if [ ! -d "/Volumes/$NAS_SHARE" ]; then
		mkdir -p "/Volumes/$NAS_SHARE"
	fi
	

	# mount_smbfs 명령어로 강제 연결	
	mount_smbfs "//$NAS_USER:$NAS_PW@$NAS_IP/$NAS_SHARE" "/Volumes/$NAS_SHARE"

	# 연결될 때까지 10초 대기
	sleep 10
fi

# 2. 재연결 후 다시 확인
if [ ! -d "$DEST_DIR" ]; then
	echo "[$NOW] ❌ 실패: 재연결 시도했으나 NAS를 찾을 수 없습니다." >> $LOG_FILE
	exit 1
fi

  

# 3. rsync 동기화 실행
echo "[$NOW] 🚀 백업 시작..." >> $LOG_FILE
rsync -avh --delete "$SOURCE_DIR" "$DEST_DIR" >> $LOG_FILE 2>&1

# 4. 종료 기록
echo "[$NOW] ✅ 백업 완료." >> $LOG_FILE
echo "------------------------------------------------" >> $LOG_FILE

3. 권한 부여 및 테스트

스크립트를 만들고 나서 반드시 실행 권한을 줘야 함.

# 1. 실행 권한 부여
chmod +x /Users/chayoung/docker/backup_to_nas.sh

# 2. 수동 실행 테스트 (에러 없는지 확인)
/Users/chayoung/docker/backup_to_nas.sh

> [!CHECK] 확인 사항
> - Finder로 `/Volumes/Backup/02_MacDocker` 폴더에 데이터가 잘 들어왔는가?
> - `cat /Users/chayoung/docker/backup.log` 명령어로 로그에 "성공"이 찍혔는가?

## 4. 스케줄링 등록 (Crontab)

매일 정해진 시간에 자동으로 돌도록 설정.

1. 터미널에서 `crontab -e` 입력
2. `i` 키를 눌러 입력 모드 진입
3. 아래 줄 추가 (매일 04:00 실행)

```cron
0 4 * * * /Users/chayoung/docker/backup_to_nas.sh
  1. ESC 누르고 :wq 입력 후 Enter (저장 후 종료)

#backup #docker #synology #mac #automation