Estou procurando uma solução adequada de backup/sincronização de arquivos fora do local. Tanto o cliente local quanto o servidor remoto executam Linux. O espaço de armazenamento no servidor é limitado, a largura de banda entre cliente e servidor é muito limitada.
Dei uma olhada em duplicidade, Back In Time, Déjà Dup, luckyBackup, rsnapshot, rdiff-backup, rsynccrypto. Nenhum deles parece fazer o que eu quero, pelo menos se os entendi corretamente. Eles armazenam várias versões ou fazem uma retransmissão completa a cada vez, ou não têm criptografia ou não têm compactação. Tentei uma combinação rsync/fusecompress/encfs, mas o fusecompress continua destruindo meus arquivos. Pesquisei superusuário e askubuntu, encontrei apenas uma pergunta semelhante aqui (Como fazer backup criptografado do tipo rsync?), mas não se fala em compactação nem em solução adequada.
Requisitos:
- espelhamento simples, apenas uma cópia dos arquivos (espaço de armazenamento limitado)
- atualize apenas os arquivos que foram alterados desde a última sincronização (largura de banda limitada)
- armazenar arquivos compactados e criptografados
- a criptografia deve acontecer no cliente antes da transmissão
Basicamente, o que eu quero é algo que se comporte como rsync, mas armazene os arquivos espelhados compactados e criptografados. Existe algo assim?
Responder1
Se o servidor estiver executando ssh:
montar site remoto localmente com
sshfs -o nonempty,sshfs_sync,compression=yes username@host:/path/archives/ /mounted/encrypted/
Crie o sistema criptografado e monte-o (na primeira vez que você tentar montar o diretório, o encfs criará o sistema de arquivos criptografado. Funciona como a montagem normal):
encfs /mounted/encrypted /mounted/unencrypted
use rsync para/montado/desencriptado
desmontar criptografia
fusermount -u /mounted/unencrypted
eventualmente desmontar recurso remoto
umount /mounted/encrypted
Responder2
@Alfred Rupp,
Você verificou "Areca Backup"?
Acho que preenche a conta de tudo o que você está pedindo/precisando.
EDITAR em 14 de junho de 2023
Post antigo, mas agora existe uma solução perfeita que atende a todos os requisitos das questões do OP.
O programa é Restic.https://restic.net/
Responder3
Acho que o que você está pedindo é uma impossibilidade lógica, a menos que você armazene um instantâneo anterior do material no cliente, para que as diferenças possam ser construídas lá sem referência ao servidor.
O problema é que se o material for armazenado criptografado no servidor, mas a chave de criptografia for mantida apenas no cliente, então você terá que transferir o conteúdo do servidor para o cliente para produzir a comparação, a menos que o cliente mantenha uma cópia disponível para este propósito. O esquema na resposta do @jet sofrerá com esse problema e a largura de banda não será auxiliada pelo algoritmo rsync nesse caso.
Você não diz que o espaço de arquivo é restrito no cliente, então talvez você possa simplesmente executar a duplicidade em uma área de arquivo local e sincronizar novamente os arquivos resultantes?
Você também pode querer ler sobre os problemas criptográficos com encfs.