백업 · 3 min read · Jan 02, 2026
rdiff-backup를 이용한 자동 백업
이것은 “복사 & 붙여넣기” 방법입니다!
이 튜토리얼을 따르는 가장 쉬운 방법은 명령줄 클라이언트/SSH 클라이언트(예: Windows용 PuTTY)를 사용하고 명령어를 복사하여 붙여넣는 것입니다(자신의 정보(IP 주소, 호스트 이름, 비밀번호 등)를 제공해야 하는 경우를 제외하고). 이렇게 하면 오타를 피할 수 있습니다.
rdiff-backup를 이용한 자동 백업
버전 1.0
저자: Falko Timme
이 튜토리얼은 rdiff-backup 도구를 사용하여 자동 서버 백업을 수행하는 방법을 설명합니다. rdiff-backup을 사용하면 SSH를 통해 네트워크에서 백업을 수행할 수 있으므로 데이터 전송이 암호화됩니다. SSH를 사용하면 rdiff-backup이 매우 안전해지며, 전송되는 데이터를 아무도 읽을 수 없습니다. rdiff-backup은 증분 백업을 수행하므로 대역폭을 절약합니다.
rdiff-backup의 기능에 대한 자세한 내용은 여기에서 확인하십시오: http://www.nongnu.org/rdiff-backup/index.html
문제는 SSH가 로그인할 때 비밀번호를 요구한다는 것입니다. 이는 rdiff-backup을 크론 작업으로 실행하려는 경우 좋지 않습니다. 비밀번호가 필요하면 인간의 상호작용이 필요하므로 우리가 원하는 것이 아닙니다. 예를 들어, server1.example.com의 디렉토리 /boot를 백업하려면 백업 서버에서 rdiff-backup [email protected]::/boot boot를 입력해야 합니다(이 튜토리얼에서는 이를 backup.example.com이라고 부릅니다). 이는 server1.example.com의 디렉토리 /boot를 backup.example.com의 디렉토리 boot에 저장하려고 시도합니다. 이제 다음과 같은 일이 발생합니다:
| rdiff-backup@backup:~$ rdiff-backup [email protected]::/boot boot 비밀번호: ----------------------------------------------------------------- 소스(읽기 전용) 파일 시스템에 대한 기능이 감지되었습니다: 접근 제어 목록 꺼짐 확장 속성 꺼짐 Mac OS X 스타일 리소스 포크 꺼짐 Mac OS X Finder 정보 꺼짐 ----------------------------------------------------------------- 경고: boot/rdiff-backup-data의 파일 시스템에서 소유권을 변경할 수 없습니다. ----------------------------------------------------------------- 대상(읽기/쓰기) 파일 시스템에 대한 기능이 감지되었습니다: 인용이 필요한 문자 '' 소유권 변경 꺼짐 하드 링크 켜짐 fsync() 디렉토리 켜짐 디렉토리 inc 권한 켜짐 접근 제어 목록 꺼짐 확장 속성 꺼짐 Mac OS X 스타일 리소스 포크 꺼짐 Mac OS X Finder 정보 꺼짐 ----------------------------------------------------------------- rdiff-backup@backup:~$ |
보시다시피, 2번째 줄에서 server1.example.com의 root 비밀번호를 요청받습니다.
하지만 다행히도 해결책이 있습니다: 공개 키를 사용하는 것입니다. 우리는 키 쌍을 생성합니다(백업 서버 backup.example.com에서), 그 중 하나는 원격 시스템(server1.example.com)의 파일에 저장됩니다. 이후 rdiff-backup을 실행할 때 더 이상 비밀번호를 입력하라는 메시지가 표시되지 않습니다. 이는 우리가 원하는 크론 작업에도 포함됩니다.
아, 지금까지 제가 쓴 내용을 통해 이미 짐작하셨겠지만, 개념은 server1.example.com의 백업을 backup.example.com에서 직접 시작하는 것입니다. server1.example.com은 백업을 받기 위해 아무것도 할 필요가 없습니다.
이 방법서는 실용적인 가이드를 위한 것이며, 이론적 배경은 다루지 않습니다. 이론적 배경은 웹의 많은 다른 문서에서 다루어집니다.
이 문서는 어떤 종류의 보증 없이 제공됩니다! 이는 이러한 시스템을 설정하는 유일한 방법이 아님을 말씀드리고 싶습니다. 이 목표를 달성하는 방법은 여러 가지가 있지만, 이것이 제가 선택한 방법입니다. 이것이 여러분에게 작동할 것이라는 보증을 제공하지 않습니다!
1단계: server1.example.com 및 backup.example.com에 rdiff-backup 설치
먼저 두 개의 server1.example.com과 backup.example.com에 rdiff-backup를 설치해야 합니다. Debian 시스템에서는 다음 명령어를 실행하여 간단히 설치할 수 있습니다:
apt-get install rdiff-backup
다른 배포판에서는 설치 방법이 다릅니다(예: Fedora에서는 yum install rdiff-backup, Mandriva에서는 urpmi rdiff-backup, SuSE에서는 yast를 사용하여 rdiff-backup를 설치해야 합니다).
2단계: backup.example.com에서 키 생성
backup.example.com에서, 우리는 rdiff-backup이라는 그룹과 비특권 사용자를 생성합니다. 이 사용자 rdiff-backup가 백업을 실행합니다. 보안상의 이유로 root가 백업을 실행하는 것을 원하지 않습니다!
groupadd -g 3500 rdiff-backup
useradd -u 3500 -s /bin/false -d /backup -m -c “rdiff-backup” -g rdiff-backup rdiff-backup
두 번째 명령은 홈 디렉토리 /backup를 가진 사용자 rdiff-backup를 생성합니다(이 명령이 실행될 때 자동으로 생성됩니다). 이 사용자는 쉘에 로그인할 수 없습니다(보안상의 이유로). 그룹 ID와 사용자 ID 3500이 이미 시스템에서 사용 중인 경우, 다른(사용 가능한) ID로 교체하십시오.
그런 다음 다음 명령을 실행합니다:
su -m rdiff-backup
이 명령을 사용하면 쉘에서 사용자 rdiff-backup가 됩니다. 이후 모든 명령은 사용자 rdiff-backup로 실행해야 합니다!
키를 생성합니다:
cd /backup
ssh-keygen -t rsa
다음과 같은 메시지가 표시됩니다:
| rdiff-backup@backup:~$ ssh-keygen -t rsa 공개/개인 rsa 키 쌍을 생성하는 중입니다. 키를 저장할 파일을 입력하십시오 (/backup/.ssh/id_rsa): 디렉토리 '/backup/.ssh'가 생성되었습니다. 암호를 입력하십시오(암호 없음은 비워 두십시오): 같은 암호를 다시 입력하십시오: 귀하의 식별 정보는 /backup/.ssh/id_rsa에 저장되었습니다. 귀하의 공개 키는 /backup/.ssh/id_rsa.pub에 저장되었습니다. 키 지문은: 88:18:4e:55:e9:27:8e:2a:44:4b:03:bd:9d:0f:fc:48 rdiff-backup@backup |
키를 /backup/.ssh/id_rsa에 저장하는 것은 괜찮으므로 그냥 enter를 누르십시오. 암호를 입력하지 않는 것이 중요합니다. 그렇지 않으면 백업이 인간의 상호작용 없이 작동하지 않으므로 다시 enter를 누르십시오. 마지막으로 두 개의 파일이 생성됩니다: /backup/.ssh/id_rsa 및 /backup/.ssh/id_rsa.pub.
다음으로 다음 내용을 가진 파일 /backup/.ssh/config를 생성합니다:
| host server1_backup hostname server1.example.com user root identityfile /backup/.ssh/id_rsa compression yes cipher blowfish protocol 2 |
host의 값은 나중에 백업을 시작하는 데 사용하는 것입니다. 원하는 이름을 사용할 수 있습니다(예: server1_backup, this_is_the_machine_i_want_to_backup 등)(하지만 공백을 포함해서는 안 됩니다; 밑줄은 괜찮습니다).
해당 파일의 권한을 변경합니다:
chmod -R go-rwx /backup/.ssh
이제 우리의 공개 키를 server1.example.com으로 복사합니다:
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
다음과 같은 메시지가 표시됩니다:
| rdiff-backup@backup:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] 23 호스트 'server1.example.com (1.2.3.4)'의 신뢰성을 확인할 수 없습니다. RSA 키 지문은 c7:19:55:7a:54:ce:93:c8:b6:f9:0e:e3:65:24:64:11입니다. 계속 연결하시겠습니까(예/아니오)? 예 경고: 'server1.example.com' (RSA)이 알려진 호스트 목록에 영구적으로 추가되었습니다. 비밀번호: 이제 "ssh '[email protected]'"로 머신에 로그인해 보시고, 다음을 확인하십시오: .ssh/authorized_keys 예상하지 못한 추가 키가 추가되지 않았는지 확인하십시오. rdiff-backup@backup:~$ |
다시 한 번 server1.example.com의 root 비밀번호를 입력해야 합니다. 이 명령은 사용자 rdiff-backup의 공개 키를 원격 서버 server1.example.com의 파일 /root/.ssh/authorized_keys에 복사합니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.