맥북 홈서버 데이터 자동 백업 (Mac → NAS)
백업 개요
- 목적: 맥북의 Docker 컨테이너 데이터(DB, 설정파일 등)를 시놀로지 NAS로 매일 자동 백업
- 방식:
rsync를 이용한 미러링 (변경된 파일만 전송 + 원본 삭제 시 백업본도 삭제) - 주기: 매일 새벽 04:00 자동 실행
- 경로:
/Users/chayoung/docker/➡/Volumes/Backup/02_MacDocker/
1. 사전 준비 (NAS 마운트)
맥북이 재부팅되어도 백업 경로가 유지되도록 설정해야 함.
- SMB 연결:
- Finder에서
Cmd+K - 주소:
smb://[NAS_IP]/Backup(키체인 암호 저장 필수)
- Finder에서
- 로그인 항목 추가:
시스템 설정>일반>로그인 항목> '로그인 시 열기'- 마운트된
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
ESC누르고:wq입력 후Enter(저장 후 종료)