압축 및 암호화된 상태로 저장하는 rsync 대안이 있습니까?

압축 및 암호화된 상태로 저장하는 rsync 대안이 있습니까?

적합한 오프사이트 백업/파일 동기화 솔루션을 찾고 있습니다. 로컬 클라이언트와 원격 서버 모두 Linux를 실행합니다. 서버의 저장 공간은 제한되어 있으며 클라이언트와 서버 간의 대역폭은 매우 제한되어 있습니다.

이중성, Back In Time, Déjà Dup, LuckyBackup, rsnapshot, rdiff-backup, rsynccrypto를 살펴보았습니다. 적어도 내가 올바르게 이해한다면 그 중 어느 것도 내가 원하는 것을 수행하지 못하는 것 같습니다. 여러 버전을 저장하거나 매번 전체 재전송을 수행하거나 암호화가 부족하거나 압축이 부족합니다. rsync/fusecompress/encfs 조합을 시도했지만 퓨즈 압축이 계속 내 파일을 파괴합니다. 슈퍼유저와 askubuntu를 검색했는데 여기서 비슷한 질문이 하나만 발견되었습니다(rsync와 같은 암호화된 백업을 수행하는 방법?). 그러나 압축에 대한 이야기도 없고 적합한 솔루션도 없습니다.

요구사항:

  • 단순 미러링, 파일 사본 하나만(제한된 저장 공간)
  • 마지막 동기화 이후 변경된 파일만 업데이트(제한된 대역폭)
  • 파일을 압축하고 암호화하여 저장
  • 전송하기 전에 클라이언트에서 암호화가 이루어져야 합니다.

기본적으로 내가 원하는 것은 rsync처럼 동작하지만 미러링된 파일을 압축 및 암호화하여 저장하는 것입니다. 그런 것이 존재합니까?

답변1

서버가 SSH를 실행 중인 경우:

  1. 원격 사이트를 로컬로 마운트

    sshfs -o nonempty,sshfs_sync,compression=yes username@host:/path/archives/ /mounted/encrypted/
    
  2. 암호화된 시스템을 생성하고 마운트합니다. (디렉토리를 처음 마운트하려고 하면 encfs가 암호화된 파일 시스템을 생성합니다. 일반 마운트처럼 작동합니다.)

    encfs /mounted/encrypted /mounted/unencrypted 
    
  3. rsync를 사용하여 /mounted/unencrypted

  4. 암호화 마운트 해제

    fusermount -u /mounted/unencrypted
    
  5. 결국 원격 리소스 마운트 해제

    umount /mounted/encrypted
    

답변2

@알프레드 럽,

"Areca 백업"을 확인하셨나요?

나는 그것이 당신이 요청하거나 필요로 하는 모든 것에 대한 청구서를 채우는 것이라고 생각합니다.

http://areca-backup.org/

2023년 6월 14일 수정

이전 게시물이지만 이제 OP 질문의 모든 요구 사항을 충족하는 완벽한 솔루션이 있습니다.

프로그램은 레스틱입니다.https://restic.net/

답변3

나는 당신이 요구하는 것이 클라이언트에 자료의 이전 스냅샷을 저장하지 않는 한 논리적으로 불가능하다고 생각하여 서버를 참조하지 않고도 diff를 구성할 수 있습니다.

문제는 자료가 서버에 암호화되어 저장되어 있지만 암호화 키는 클라이언트에만 보관되어 있는 경우 클라이언트가 사용 가능한 복사본을 보관하지 않는 한 차이점을 생성하려면 콘텐츠를 서버에서 클라이언트로 전송해야 한다는 것입니다. 이 목적을 위해. @jet 답변의 구성표는 이 문제로 인해 어려움을 겪게 되며 이 경우 rsync 알고리즘은 대역폭에 도움이 되지 않습니다.

클라이언트에서 파일 공간이 제한되어 있다고 말하지 않았으므로 로컬 파일 영역에 이중성을 실행하고 결과 파일을 rsync할 수 있습니까?

encfs의 암호화 문제에 대해 읽어볼 수도 있습니다.

관련 정보