Estoy buscando una solución adecuada de sincronización de archivos/copia de seguridad externa. Tanto el cliente local como el servidor remoto ejecutan Linux. El espacio de almacenamiento en el servidor es limitado y el ancho de banda entre el cliente y el servidor es muy limitado.
Eché un vistazo a duplicity, Back In Time, Déjà Dup, luckyBackup, rsnapshot, rdiff-backup, rsynccrypto. Ninguno de ellos parece hacer lo que quiero, al menos si los entiendo correctamente. O almacenan múltiples versiones, o realizan una retransmisión completa cada vez, o carecen de cifrado o compresión. Probé una combinación rsync/fusecompress/encfs, pero fusecompress sigue destruyendo mis archivos. Busqué superusuario y Askubuntu, solo encontré una pregunta similar aquí (¿Cómo hacer una copia de seguridad cifrada tipo rsync?), pero no se habla de compresión ni de una solución adecuada.
Requisitos:
- duplicación simple, solo una copia de los archivos (espacio de almacenamiento limitado)
- actualice solo los archivos que cambiaron desde la última sincronización (ancho de banda limitado)
- almacenar archivos comprimidos y cifrados
- El cifrado debe realizarse en el cliente antes de transmitir.
Básicamente, lo que quiero es algo que se comporte como rsync, pero almacene los archivos reflejados comprimidos y cifrados. Algo como eso existe?
Respuesta1
Si el servidor ejecuta ssh:
montar el sitio remoto localmente con
sshfs -o nonempty,sshfs_sync,compression=yes username@host:/path/archives/ /mounted/encrypted/
Cree el sistema cifrado y móntelo (la primera vez que intente montar el directorio, encfs creará el sistema de archivos cifrado. Funciona como el montaje normal):
encfs /mounted/encrypted /mounted/unencrypted
use rsync para /montado/sin cifrar
desmontar cifrado
fusermount -u /mounted/unencrypted
eventualmente desmontar recurso remoto
umount /mounted/encrypted
Respuesta2
@Alfred Rupp,
¿Has marcado "Areca Backup"?
Creo que satisface todos los requisitos de todo lo que pides/necesitas.
EDITAR el 14 de junio de 2023
Publicación anterior, pero ahora hay una solución perfecta que cumple con todos los requisitos de las preguntas OP.
El programa es Restic.https://restic.net/
Respuesta3
Creo que lo que estás pidiendo es una imposibilidad lógica a menos que almacene una instantánea anterior del material en el cliente, de modo que las diferencias puedan construirse allí sin referencia al servidor.
El problema es que si el material se almacena cifrado en el servidor, pero la clave de cifrado solo se guarda en el cliente, entonces hay que transferir el contenido del servidor al cliente para producir la diferencia, a menos que el cliente tenga una copia disponible. para este propósito. El esquema en la respuesta de @jet sufrirá este problema y, en ese caso, el algoritmo rsync no ayudará al ancho de banda.
No dice que el espacio de archivos esté limitado en el cliente, por lo que tal vez pueda ejecutar la duplicidad en un área de archivos local y sincronizar los archivos resultantes.
Quizás también quieras leer sobre los problemas criptográficos con encfs.