웹사이트 검색

이중성 – Linux에서 암호화된 증분 백업 생성


경험에 따르면 시스템 백업에 대해 너무 편집증적이어서는 안 됩니다. 귀중한 데이터를 보호하고 보존하는 데 있어서는 추가 노력을 기울이고 필요할 경우 백업에 의존할 수 있는지 확인하는 것이 가장 좋습니다.

오늘날에도 일부 클라우드 및 호스팅 제공업체가 상대적으로 저렴한 비용으로 VPS에 대한 자동 백업을 제공하는 경우 비용을 절약하고 추가 스토리지를 구입하거나 이를 사용하기 위해 자신의 도구를 사용하여 자신만의 백업 전략을 만드는 것이 좋습니다. 더 큰 VPS를 얻으세요.

재미있을 것 같나요? 이 도움말에서는 Duplicity라는 도구를 사용하여 파일과 디렉터리를 백업하고 암호화하는 방법을 보여줍니다. 또한 이 작업에 증분 백업을 사용하면 공간을 절약하는 데 도움이 됩니다.

이제 시작하겠습니다.

Linux에 이중 백업 도구 설치

RHEL 기반 배포판에 이중성을 설치하려면 먼저 EPEL 저장소를 활성화해야 합니다(Fedora 자체를 사용하는 경우 이 단계를 생략할 수 있음).

yum update 
yum install epel-release
OR
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

그런 다음 실행하십시오.

yum install duplicity

Debian 및 파생 제품의 경우:

sudo apt update 
sudo apt install duplicity

이론적으로는 파일 서버에 연결하는 다양한 방법이 지원되지만 실제로는 ssh/scp/sftp, 로컬 파일 액세스, rsync, ftp, HSI, WebDAV 및 Amazon S3만 테스트되었습니다.

설치가 완료되면 다양한 시나리오에서 sftp를 독점적으로 사용하여 데이터를 백업하고 복원합니다.

테스트 환경은 RHEL 8 상자(백업 예정)와 Debian 11 머신(백업 서버)으로 구성됩니다.

원격 서버에 비밀번호 없이 로그인하기 위한 SSH 키 생성

먼저 RHEL 상자에 SSH 키를 생성하고 이를 Debian 백업 서버로 전송해 보겠습니다.

다른 포트에서 SSH를 실행하는 경우 아래 명령은 sshd 데몬이 Debian 서버의 XXXXX 포트에서 수신 대기하고 있다고 가정합니다. AAA.BBB.CCC.DDD를 원격 서버의 실제 IP로 바꾸세요.

ssh-keygen -t rsa
ssh-copy-id [email 
ssh-copy-id -p XXXXX [email   

그런 다음 비밀번호를 사용하지 않고 백업 서버에 연결할 수 있는지 확인해야 합니다.

ssh [email 

이제 데이터 암호화 및 복호화에 사용할 GPG 키를 생성해야 합니다.

gpg2 --full-gen-key

다음을 입력하라는 메시지가 표시됩니다.

  • 열쇠의 종류
  • 키 크기
  • 키가 유효한 기간
  • 암호

키 생성에 필요한 엔트로피를 생성하려면 다른 터미널 창을 통해 서버에 로그온하고 몇 가지 작업을 수행하거나 일부 명령을 실행하여 엔트로피를 생성할 수 있습니다. 마무리하는 과정)

키가 생성되면 다음과 같이 나열할 수 있습니다.

gpg --list-keys

위에서 노란색으로 강조 표시된 문자열은 공개 키 ID로 알려져 있으며 파일을 암호화하기 위해 요청된 인수입니다.

이중성을 사용하여 Linux 백업 생성

간단하게 시작하려면 /var/log/anaconda/var/log/sa/var/log 디렉터리만 백업하겠습니다. 강하다>.

이번이 첫 번째 백업이므로 전체 백업이 됩니다. 후속 실행에서는 증분 백업이 생성됩니다(아래 명령에서 이중성 바로 옆에 대시가 없는 전체 옵션을 추가하지 않는 한).

PASSPHRASE="tecmint" duplicity --encrypt-key 115B4BB13BC768B8B2704E5663C429C3DB8BAD3B --exclude /var/log/anaconda --exclude /var/log/sa /var/log scp://[email //backups/rhel8
OR
PASSPHRASE="YourPassphraseHere" duplicity --encrypt-key YourPublicKeyIdHere --exclude /var/log/anaconda --exclude /var/log/sa /var/log scp://root@RemoteServer:XXXXX//backups/rhel8

위 명령에서 이중 슬래시를 놓치지 마세요! 이는 백업 상자에서 /backups/rhel8 디렉터리에 대한 절대 경로를 나타내는 데 사용되며 백업 파일이 저장되는 곳입니다.

YourPassphraseHere, YourPublicKeyIdHereRemoteServer를 이전에 입력한 암호, GPG 공개 키 ID 및 백업의 IP 또는 호스트 이름으로 바꿉니다. 서버.

출력은 다음 이미지와 유사해야 합니다.

위 이미지는 총 86.3MB가 대상에 3.22MB로 백업되었음을 나타냅니다. 새로 생성된 백업을 확인하기 위해 백업 서버로 전환해 보겠습니다.

동일한 명령을 두 번째로 실행하면 백업 크기와 시간이 훨씬 작아집니다.

이중성을 사용하여 Linux 백업 복원

파일, 해당 내용이 포함된 디렉터리 또는 전체 백업을 성공적으로 복원하려면 대상이 존재하지 않아야 합니다(이중성은 기존 파일이나 디렉터리를 덮어쓰지 않습니다). 명확히 하기 위해 CentOS 상자에서 cron 로그를 삭제해 보겠습니다.

rm -f /var/log/cron

원격 서버에서 단일 파일을 복원하는 구문은 다음과 같습니다.

PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore filename sftp://root@RemoteHost//backups/rhel8 /where/to/restore/filename

어디,

  • 파일 이름은 추출할 파일이며, 백업된 디렉터리에 대한 상대 경로가 포함되어 있습니다.
  • /where/to/restore는 파일을 복원하려는 로컬 시스템의 디렉터리입니다.

우리의 경우 원격 백업에서 cron 기본 로그를 복원하려면 다음을 실행해야 합니다.

PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore cron sftp://[email :XXXXX//backups/rhel8 /var/log/cron

크론 로그를 원하는 대상으로 복원해야 합니다.

마찬가지로 /var/log에서 디렉토리를 삭제하고 백업을 사용하여 복원하세요.

rm -rf /var/log/mail
PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore mail sftp://[email :XXXXX//backups/rhel8 /var/log/mail

이 예에서 mail 디렉토리는 모든 콘텐츠와 함께 원래 위치로 복원되어야 합니다.

이중성의 다른 기능

언제든지 다음 명령을 사용하여 보관된 파일 목록을 표시할 수 있습니다.

duplicity list-current-files sftp://[email :XXXXX//backups/rhel8

6개월이 지난 백업 삭제:

duplicity remove-older-than 6M sftp://[email :XXXXX//backups/rhel8

gacanepa 디렉토리 내의 myfile을 2일 12시간 전의 상태로 복원합니다.

duplicity -t 2D12h --file-to-restore gacanepa/myfile sftp://[email :XXXXX//remotedir/backups /home/gacanepa/myfile

마지막 명령에서 시간 간격(-t로 지정됨)의 사용 예를 볼 수 있습니다. 각 쌍은 숫자와 문자 중 하나로 구성됩니다. Strong>s, m, h, D, W, M Strong> 또는 Y(각각 초, 분, 시간, 일, 주, 월 또는 연도를 나타냄)

요약

이 기사에서는 기본적으로 파일 및 디렉터리 암호화를 제공하는 백업 유틸리티인 Duplicity를 사용하는 방법을 설명했습니다. 추가 문서와 예제를 보려면 이중성 프로젝트 웹사이트를 살펴보는 것이 좋습니다.

우리는 귀하의 읽기 편의를 위해 PDF 형식의 이중성 매뉴얼 페이지를 제공했으며 이는 완전한 참조 가이드이기도 합니다.

질문이나 의견이 있으면 언제든지 알려주시기 바랍니다.