백업 및 복원 · 4 min read · Sep 16, 2025

Linux 서버에서 Rsnapshot을 사용하여 백업 및 복원하는 방법

rsnapshot은 리눅스 기반 머신을 위한 백업 유틸리티입니다. 대부분의 리눅스 배포판에서 사용할 수 있으며, 패키지 관리자를 통해 쉽게 설치할 수 있습니다. rsnapshot은 Perl로 작성되었으며 의존성이 없으며, 로컬 및 원격 백업을 지원합니다.

rsnapshot을 사용하면 로컬 디렉토리를 백업할 수 있습니다. 원격 백업의 경우, rsnapshot은 ‘ssh’와 ‘rsync’를 활용합니다.

이 튜토리얼에서는 Linux 서버에서 Rsnapshot을 사용하여 백업 및 복원하는 방법을 배웁니다. 로컬 백업과 원격 백업을 위해 rsnapshot을 설정할 것입니다. 또한 rsnapshot과 cron을 사용하여 자동 백업을 설정하는 방법도 배웁니다.

필수 조건

이 가이드를 완료하려면 다음이 필요합니다:

  • Debian, Ubuntu, CentOS 또는 기타 배포판과 같은 Linux 서버
  • 관리자 권한이 있는 비루트 사용자
  • 선택 사항, 원격 백업을 테스트할 추가 서버

rsnapshot 설치

rsnapshot은 대부분의 리눅스 배포판에서 사용할 수 있는 백업 유틸리티입니다. 해당 패키지 관리자를 통해 설치할 수 있습니다. 이 섹션에서는 Debian 서버에 rsnapshot을 설치할 것입니다. 따라서 다른 배포판을 사용하는 경우 현재 패키지 관리자를 사용하여 설치하십시오.

먼저, 다음 명령어로 패키지 인덱스를 업데이트합니다. 이 예제에서는 Debian을 사용할 것이며, Ubuntu, Linux Mint 등과 같은 Debian 기반 배포판을 사용할 수 있습니다.

sudo apt update

update repo

업데이트가 완료되면 아래 명령어를 실행하여 ‘rsnapshot‘ 패키지를 설치합니다. 설치를 확인하려면 ‘Y‘를 입력하십시오.

sudo apt install rsnapshot

install rsnapshot

설치가 완료되면 ‘rsnapshot‘ 바이너리 위치와 버전을 확인합니다.

which rsnapshot  
rsnapshot --version

아래에서 볼 수 있듯이, Rsnapshot 1.4가 ‘/usr/bin/rsnapshot‘에 설치되어 있습니다.

check rsnapshot

SSH 키 인증 구성

원격 백업을 수행할 때, rsnapshot 서버가 SSH 키 인증을 사용하여 대상 서버에 로그인할 수 있도록 해야 합니다. 따라서 원격 백업을 위해 다음이 필요합니다:

  • 대상 서버에 로그인하는 데 사용할 사용자
  • SSH 키 기반 인증이 활성화되어 있어야 합니다.

이 섹션에서는 rsnapshot 서버에서 SSH 키를 생성합니다. 그런 다음 사용자 ‘alice‘를 사용하여 ‘192.168.10.41‘의 대상 서버에 SSH 공개 키를 복사합니다.

‘rsnapshot’ 서버에서 아래의 ‘ssh-keygen‘ 명령어를 사용하여 SSH 공개 및 개인 키를 생성합니다. 위치 키와 비밀번호를 묻는 메시지가 표시되면 ‘ENTER’를 누릅니다.

ssh-keygen -t ed25519

generate ssh key

이제 아래의 ‘ssh-copy-id‘ 명령어를 실행하여 SSH 공개 키를 대상 서버에 업로드합니다. 이 예제에서는 사용자 ‘alice‘를 사용하여 SSH 키 기반 인증으로 ‘192.168.10.41‘ 서버에서 원격 백업을 수행합니다.

ssh-copy-id [email protected]

프롬프트가 표시되면 비밀번호를 입력합니다.

ssh up-load key

SSH 공개 키가 업로드되면 Rsnapshot을 설정할 준비가 완료됩니다.

rsnapshot 구성

이 섹션에서는 로컬 및 원격 백업을 위해 rsnapshot을 구성합니다. 기본 구성 ‘/etc/rsnapshot.conf‘를 수정하고, 기본 백업 디렉토리를 설정하고, SSH 및 Rsync와의 통합을 활성화하고, 간격 백업을 설정한 후 로컬 및 원격 백업을 구성합니다.

rsnapshot 기본 구성 ‘/etc/rsnapshot.conf‘를 복사하고 ‘nano‘ 또는 ‘vim‘ 편집기로 파일을 수정합니다.

sudo cp /etc/rsnapshot.conf /etc/rsnapshot.conf.orig  
sudo nano /etc/rsnapshot.conf

기본 ‘snapshot_root‘를 새 디렉토리로 변경합니다. 이 디렉토리는 백업 데이터를 저장하는 데 사용됩니다.

snapshot_root /data/backup/

원격 백업을 위해 SSH를 통해 rsync를 활성화하려면 ‘cmd_rsync‘ 및 ‘cmd_ssh‘ 옵션의 주석을 제거합니다.

cmd_rsync /usr/bin/rsync  
cmd_ssh /usr/bin/ssh

기본 백업 수준 또는 간격을 다음과 같이 변경합니다. 이름은 선택 사항이며 필요에 따라 변경할 수 있습니다. 이 예제에서는 ‘daily 6‘이 ‘daily.0‘에서 ‘daily.5‘까지의 백업 디렉토리를 생성합니다.

참고: 오류가 발생할 수 있으므로 공백 대신 TAB을 사용하십시오.

retain daily 6  
retain weekly 7  
retain monthly 4

rsnapshot 로그를 파일에 활성화하려면 ‘logfile‘ 옵션의 주석을 제거합니다.

logfile /var/log/rsnapshot.log

사용자 정의 SSH 포트를 사용하는 원격 서버를 실행하는 경우 ‘ssh_args‘ 옵션의 주석을 제거하고 포트를 변경합니다.

ssh_args -p 22

이제 로컬 백업을 위해 다음과 같은 구성을 사용합니다. 이 예제에서는 로컬 디렉토리 ‘/home/arvd‘를 ‘local‘로 백업합니다. 대상 경로는 상대 경로여야 하며, 이는 ‘/srv/backup/name-interval/local‘과 같습니다.

backup /home/arvdl/ local

SSH 및 rsync를 통한 원격 백업의 경우 다음과 같은 구성을 사용합니다. 이 예제에서는 원격 서버 ‘192.168.10.41‘에서 SSH 사용자 ‘alice‘를 사용하여 ‘/etc‘ 및 ‘/var/www‘ 디렉토리를 ‘server1‘ 상대 경로 디렉토리로 백업합니다.

backup [email protected]:/etc/ server1  
backup [email protected]:/var/www server1

작업이 완료되면 파일을 저장하고 종료합니다.

rsnapshot을 구성한 후, 다음 명령어로 rsnapshot 구성을 확인하고 테스트합니다. 올바른 구성이면 ‘Syntax OK‘라는 출력을 볼 수 있습니다.

rsnapshot configtest

rsnapshot 백업 수동 테스트

이제 rsnapshot을 구성했으므로 rsnapshot을 사용하여 백업을 수동으로 테스트하고 백업 디렉토리 및 rsnapshot 로그 파일을 확인합니다.

백업을 수동으로 테스트하려면 아래의 ‘rsnapshot’ 명령어를 실행합니다. ‘daily‘를 백업 이름으로 변경해야 합니다.

rsnapshot daily

프로세스가 완료되면 다음 명령어로 백업 디렉토리 ‘/srv/backup‘를 확인합니다. 로컬 및 원격 서버에서 백업 파일이 포함된 새로운 백업 디렉토리 ‘daily.0‘를 볼 수 있습니다.

ls /srv/backup/

이제 아래의 명령어를 실행하여 rsnapshot에 의한 디스크 사용량을 확인합니다.

rsnapshot du

아래 출력에서 rsnapshot 백업의 총 디스크 사용량이 5MB임을 확인할 수 있습니다.

rsnapshot du

마지막으로 백업 프로세스를 확인하기 위해 백업 로그 파일 ‘/var/log/rsnapshot.log‘를 확인합니다.

cat /var/log/rsnapshot.log

다음은 백업이 성공했지만 ‘/etc/shadow‘ 파일을 백업할 때 권한 거부와 같은 몇 가지 경고가 있음을 보여줍니다.

log file

Cron을 통한 자동 백업

자동 백업을 위해 rsnapshot을 cron과 통합할 수 있습니다. 예를 들어, ‘daily‘, ‘weekly‘, ‘monthly‘로 자동 백업을 설정할 수 있습니다.

‘nano’ 편집기로 ‘/etc/cron.d/rsnapshot‘ 파일을 엽니다. 이 파일은 rsnapshot에 의해 생성된 예제입니다.

sudo nano /etc/cron.d/rsnapshot

rsnapshot을 통해 자동 백업을 위한 다음 구성을 입력합니다. 이 예제에서는 ‘daily‘ 백업이 매일 실행되며, ‘weekly‘ 및 ‘monthly‘도 각각의 시간에 실행됩니다.

0 0 * * * root rsnapshot daily  
0 0 * * 0 root rsnapshot weekly  
0 0 1 * * root rsnapshot monthly

파일을 저장하고 편집기를 종료합니다.

이로써 자동 백업이 cron을 통해 실행됩니다.

rsnapshot 백업 복원

rsnapshot 백업을 복원하려면 백업 디렉토리에서 데이터 복사만 하면 됩니다. 이 예제에서는 백업 디렉토리 ‘/srv/backup’에서 데이터를 복사할 수 있습니다.

결론

축하합니다! rsnapshot을 설치하고 로컬 및 원격 백업을 위해 rsnapshot을 설정하는 튜토리얼을 완료했습니다. 또한 몇 가지 기본 ‘rsnapshot’ 명령을 배웠습니다. 마지막으로 rsnapshot과 cron을 사용하여 자동 백업을 설정하는 방법도 배웠습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.