백업 자동화 · 2 min read · Feb 08, 2026
rdiff-backup을 이용한 자동 백업 - 2페이지
3단계: server1.example.com에서 공개 키 편집하기
server1.example.com에 root로 로그인하고 /root/.ssh/authorized_keys를 확인하세요. 다음과 비슷하게 보여야 합니다:
| ssh-rsa AAAAB3Nza[...]W1go9M= rdiff-backup@backup |
이제 다음 문자열을 /root/.ssh/authorized_keys의 앞에 추가하세요:
command=”rdiff-backup –server –restrict-read-only /“,from=”backup.example.com”,no-port-forwarding,no-X11-forwarding,no-pty
키와 공백으로만 구분된 한 줄로 작성해야 합니다(!):
| command="rdiff-backup --server --restrict-read-only /",from="backup.example.com",no-port-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAAB3Nza[...]W1go9M= rdiff-backup@backup |
이렇게 하면 backup.example.com의 사용자 rdiff-backup가 server1.example.com에 SSH로 연결할 때 rdiff-backup –server –restrict-read-only /* 명령이 실행됩니다. –restrict-read-only /는 rdiff-backup이 server1.example.com에서 읽기 전용 액세스만 갖도록 보장합니다. 이것이 작동하는지는 사용 중인 rdiff-backup 버전에 따라 다릅니다. 작동하지 않는 경우 –restrict-read-only /*를 생략할 수 있으며, 그러면 다음과 같이 읽습니다:
command=”rdiff-backup –server”,from=”backup.example.com”,no-port-forwarding,no-X11-forwarding,no-pty
from=”backup.example.com”에는 backup.example.com의 IP 주소의 역 조회 결과로 반환되는 호스트 이름을 사용해야 합니다. 예를 들어, backup.example.com의 IP 주소가 1.2.3.4이고, **
dig -x 1.2.3.4
가 반환하는 결과:
| rdiff-backup@backup:~$ dig -x 1.2.3.4 ; <> DiG 9.2.4 <> -x 1.2.3.4 ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38020 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;4.3.2.1.in-addr.arpa. IN PTR ;; ANSWER SECTION: 4.3.2.1.in-addr.arpa. 43200 IN PTR server3245.somehoster.com. ;; Query time: 118 msec ;; SERVER: 145.253.2.75#53(145.253.2.75) ;; WHEN: Thu Oct 13 14:56:03 2005 ;; MSG SIZE rcvd: 83 rdiff-backup@backup:~$ |
그렇다면 server3245.somehoster.com을 사용해야 합니다:
command=”rdiff-backup –server –restrict-read-only /“,from=”server3245.somehoster.com”,no-port-forwarding,no-X11-forwarding,no-pty
backup.example.com의 IP 주소를 사용할 수도 있습니다:
command=”rdiff-backup –server –restrict-read-only /“,from=”1.2.3.4”,no-port-forwarding,no-X11-forwarding,no-pty
다음으로 실행하세요:
chmod -R go-rwx /root/.ssh
그런 다음 /etc/ssh/sshd_config를 확인하세요. 다음과 같은 줄이 포함되어 있어야 합니다:
| RSAAuthentication yes PubkeyAuthentication yes |
/etc/ssh/sshd_config를 변경해야 했다면 SSH를 재시작하세요:
/etc/init.d/ssh restart
4단계: backup.example.com에서 rdiff-backup 테스트하기
다시 backup.example.com으로 돌아가서, 사용자 rdiff-backup로 백업을 테스트합니다:
cd /backup
rdiff-backup server1_backup::/boot boot
두 번째 명령어에서 server1_backup 문자열을 볼 수 있습니다. 이는 /backup/.ssh/config에서 host 뒤에 사용한 문자열입니다. 이 두 번째 명령어를 통해 사용자 rdiff-backup는 server1.example.com에 root 사용자로 연결하고, server1.example.com의 /boot 디렉토리를 backup.example.com의 /backup/boot 디렉토리에 저장합니다. 작동하고 비밀번호를 입력할 필요가 없다면 - 축하합니다! 성공하셨습니다!
이제 남은 것은 크론 작업을 만드는 것입니다. 여전히 사용자 rdiff-backup로 실행하여:
crontab -e
다음과 같은 크론 작업을 생성하세요:
40 2 /usr/bin/rdiff-backup –exclude /tmp –exclude /mnt –exclude /proc –exclude /dev –exclude /cdrom –exclude /floppy server1_backup::/ /backup/server1*
이렇게 하면 매일 밤 2시 40분에 백업이 실행되어, server1.example.com의 / 디렉토리와 모든 하위 디렉토리(/tmp, /mnt, /proc, /dev, /cdrom, /floppy 제외)가 backup.example.com의 /backup/server1에 저장됩니다.
(참고 (조금 주제에서 벗어남): Debian Sarge에서 crontab -e는 자동으로 편집기 nano를 엽니다. vi 편집기를 사용하는 데 익숙하다면, 다음 명령어를 실행하세요:
rm -f /etc/alternatives/editor
ln -s /usr/bin/vi /etc/alternatives/editor
그 후 crontab -e를 실행하면 vi가 열립니다.)
rdiff-backup 명령어에 대해 더 알아보려면 (특히 백업 복원 방법), 다음을 실행하세요:
man rdiff-backup
그리고 http://www.nongnu.org/rdiff-backup/examples.html을 확인하세요.
링크
rdiff-backup 홈페이지: http://www.nongnu.org/rdiff-backup/index.html
rdiff-backup 예제: http://www.nongnu.org/rdiff-backup/examples.html
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.