Sincronización remota de archivos con openrsync
Por el 2 de Octubre de 2023
openrsync(1) sirve para sincronizar archivos locales en un destino remoto. Es parte de OpenBSD desde la versión 6.5 por lo que no requiere la instalación de ningún paquete.
Para mantener una copia actualizada del directorio Maildir en el servidor remoto backup.example.com con el usuario foo conectando por el puerto SSH 28521 se puede hacer así:
#!/bin/sh
openrsync -rpgoD --del --rsync-path=/usr/bin/openrsync -e "ssh -p 28521" /home/foo/Maildir foo@backup.example.com:~
De esta forma copia dicho directorio de forma recursiva y borra los archivos antiguos que ya no existen en el host desde el que se ejecuta openrsync.
- -r: copia recursiva
- -p: establece los mismos permisos
- -g: establece el mismo grupo
- -o: establece el mismo propietario
- -D: transfiere dispositivos y archivos especiales
- --del: borra los archivos no encontrados en local
- --rsync-path: indica el directorio de openrsync
- -e "ssh -p 28521": usa ssh indicando el puerto 28521
Combinándolo con crontab(1) conforma una excelente solución minimalista para hacer copias de seguridad.