리눅스를 메인 운영체제로 사용하는 사용자는 대부분 중요한 개발 환경이나 데이터를 다루게 됩니다. 그러나 많은 사람들이 백업을 수동으로 하거나, 아예 하지 않고 있다가 데이터를 잃는 경험을 겪곤 합니다. 리눅스에는 rsync라는 강력한 백업 도구가 기본적으로 내장되어 있으며, 이를 cron과 조합하면 누구나 손쉽게 완전 자동화된 백업 시스템을 구축할 수 있습니다. 이 글에서는 로컬 백업부터 외장하드, 원격 서버까지 자동으로 백업하는 방법을 실제 사용 기준으로 설명합니다.
1. rsync란 무엇인가?
rsync는 파일과 디렉토리를 동기화하는 유틸리티로, 변경된 파일만 전송하는 방식이라 매우 빠르고 효율적입니다. 단순 복사 기능뿐 아니라, 삭제 동기화, 압축 전송, 권한 유지 등 백업에 최적화된 옵션을 제공합니다.
2. rsync 기본 사용법
기본적인 로컬 백업 명령어는 아래와 같습니다.
rsync -avh /home/사용자/Documents/ /media/backup_drive/Documents/
옵션 설명:
-a
: 권한, 타임스탬프, 심볼릭 링크 유지-v
: 출력 보기-h
: 사람이 읽기 쉬운 형식
3. 스크립트 작성 (자동 백업용)
반복 실행을 위해 아래와 같은 백업 스크립트를 만들어 저장합니다.
#!/bin/bash
SRC="/home/사용자/Documents/"
DEST="/media/backup_drive/Documents/"
LOG="/home/사용자/backup_logs/rsync-$(date +%F).log"
mkdir -p $(dirname "$LOG")
rsync -avh --delete "$SRC" "$DEST" > "$LOG" 2>&1
스크립트에 실행 권한을 부여합니다.
chmod +x backup.sh
4. cron으로 자동 실행 예약하기
cron을 이용해 매일 오전 3시에 자동 백업이 되도록 설정해보겠습니다.
crontab -e
아래 한 줄을 추가합니다:
0 3 * * * /home/사용자/backup.sh
이 설정은 매일 새벽 3시에 지정한 디렉토리를 자동으로 백업하고, 로그도 남깁니다. 로그는 일자별로 저장되며, 백업 성공 여부 확인에 유용합니다.
5. 외장하드 자동 마운트 팁
외장하드를 자동 마운트하고 백업하려면 UUID
를 /etc/fstab
에 등록하는 것이 좋습니다.
sudo blkid
출력된 UUID를 확인한 후, fstab 파일에 아래와 같이 추가:
UUID=xxx-xxxx /media/backup_drive ext4 defaults 0 2
6. rsync 주요 옵션 요약
--delete
: 백업 대상에서 삭제된 파일도 백업 위치에서 삭제--progress
: 실시간 진행 상황 표시--exclude
: 특정 파일 또는 폴더 제외 가능
7. 실사용 예제: 매주 전체 백업, 매일 문서 백업
아래와 같이 두 개의 다른 스크립트를 만들고 cron에 등록하면, 백업 전략을 분할할 수 있습니다.
- 매일: 문서 폴더만 백업
- 매주 일요일: 전체 홈 디렉토리 백업
0 3 * * * /home/사용자/backup_docs.sh
0 4 * * 0 /home/사용자/backup_full.sh
8. 마무리
백업은 언제나 “문제가 생기기 전에” 해야 합니다. 리눅스에서는 rsync와 cron이라는 강력한 도구를 활용해 누구나 자동 백업 시스템을 구축할 수 있습니다. 단 몇 줄의 스크립트와 설정만으로 데이터 유실에 대한 걱정을 줄일 수 있으며, 별도의 유료 프로그램 없이도 안정적인 보호 체계를 만들 수 있습니다. 지금 바로 백업 자동화를 시작해보세요.