
680 - Backups en Android con Restic
Como hacer copias de seguridad o #backup en #android utilizando #restic #termux y #minio de forma sencilla, segura y cifrada.
Hace unos días te comenté que estaba estudiando la posibilidad de reemplazar BorgBackup, la herramienta que utilizo por defecto para copias de seguridad, y de la que te he hablado en varias ocasiones. Es una herramienta de la que estoy realmente satisfecho y que me ha ahorrado mas de un disgusto, como por ejemplo lo que te conté en el episodio 173 titulado Hice un rm -rf, salvado por Borg. Sin embargo, hace poco descubrí Restic del que te hablé en el episodio 677 titulado No pierdasa tus datos. Backups infalibles con Restic y Minio, y llevo unas semanas comparando uno con el otro. Y, realmente estoy tan satisfecho con este último, con Restic que he decidido implantarlo en otros dispositivos donde hasta el momento no estaba haciendo copias de seguridad, y me refiero a mis dispositivos Android. Así, en este episodio te hablaré de backups en Android.

Backups en Android con Restic
¿Por qué hacer backups en Android?
Evidentemente la primera pregunta que te puedes plantear es la necesidad de realizar copias de seguridad en Android. Y la respuesta es sencilla, porque los dispositivos Android, como cualquier otro dispositivo, están expuestos a fallos, robos, errores humanos, etc. Y, en estos casos, tener una copia de seguridad puede ser la diferencia entre perder datos importantes o recuperarlos rápidamente.
Pero, si puedes guardar tus datos en una nube de terceros, ¿tiene sentido hacer tu propia copia de seguridad? Pues sí, porque tener un control total sobre tus datos, su encriptación y su almacenamiento es una ventaja que no todos los servicios de almacenamiento en la nube pueden ofrecer. Y en este caso, la combinación que te ofrezco, de Restic con Minio realmente funciona perfectamente.
En mi caso particular, todavía tiene mas sentido, dado que estoy utilizando la tablet Android como un dispositivo para trabajar en movilidad, con lo que necesito tener todos los datos seguros, dentro de lo posible.
¿Como lo estoy haciendo?
Actualmente estoy probando dos opciones distintas desde el lado del cliente, es decir, desde el lado de utilizar Restic en los dispositivos Android. Mientras que en el lado del almacenamiento, en todos los casos estoy utilizando S3 con Minio.
Restic Android
Restic Android es un proyecto que tiene como objetivo hacer que las copias de seguridad en Android sean fáciles y rápidas utilizando Restic. Hace uso de termux/proot para ejecutar los binarios de Restic para Linux en Android. Aunque tiene un importante inconveniente, y es que se trata de un proyecto que aún se encuentra en una etapa muy temprana, con lo que no está exento de problemas, y debes tenerlo en cuenta.
Características de Restic Android
- Gestionar repositorios de Restic (actualmente solo se admiten los protocolos S3, B2 y Rest).
- Gestionar instantáneas de Restic.
- Gestionar carpetas para realizar copias de seguridad.
- Configurar horarios para copias de seguridad automáticas.
- Configurar políticas de limpieza para las carpetas.
- Notificaciones de progreso.
Como ves, con estas características ya cumple lo básico para que lo puedas utilizar de forma segura para realizar tus copias de seguridad en Android.
Mientras que actualmente, en el momento de hablar de este proyecto, tiene la siguiente hoja de ruta
- Limpiar el código en desarrollo.
- Soporte para más protocolos.
- Horarios de copia de seguridad y políticas de limpieza más detalladas.
- Mejorar los mensajes de error.
- Reglas de copia de seguridad (realizar copias solo al cargar, solo con WiFi, etc.).
Para mi, teniendo en cuenta que por el momento, solo lo estoy utilizando con S3, y en la tablet, que solo permite WiFi, es perfecto, pero, a lo mejor en tu caso, necesitas algo mas avanzado.
Instalación de Restic Android
Respecto a la instalación indicarte, que por el momento, la única opción que he visto para la instalación es desde el propio repositorio de GitHub. Esto es algo, que estoy seguro que a mas de uno le tirará para atrás.
Restic en Termux
La otra opción es utilizar Restic en Termux, y es la que por el momento mas me atrae, ya que me permite organizarla dentro de mis dotfiles, y organizarla y mantenerla como cualquier otro archivo de configuración cualquiera.
De echo, te recomiendo que le des un vistazo a mis archivos de configuración, en concreto al archivo ~/.local/bin/backup.sh.jinja
. Aquí, podrás ver que actualmente estoy manteniendo las dos herramientas, tanto Borg como Restic, y que lo hago, tanto para mi ordenador de sobremesa como para Android.
La razón de mantener dos herramientas es simplemente comparar y finalmente decidir por cual de las dos herramientas me decanto, si Borg o Restic. Aunque ya te puedo decir, que por el momento Restic se está ganando mi confianza, por el uso de S3. Aunque como te puedes imaginar, esto es un pequeño inconveniente.
Esto de utilizar archivos jinja
, lo comenté en el episodio 639 titulado Pass y GoPass, contraseñas en Linux y Android. Para esto utilizo, jinrender
, una herramienta que me permite compartir mis archivos de configuración sin tener que exponer mis contraseñas.
Así, con el archivo backup.sh.jinja
que te he comentado, puedo generar el archivo backup.sh
que utilizo en mi ordenador de sobremesa, y el archivo backup.sh
que utilizo en mi tablet Android, reemplazando las variables dependiendo del dispositivo.
El mayor de los problemas en el caso de utilizar Restic en combinación con Termux es que no puedo programarlo como lo tengo en mi equipo personal, donde cada vez que lo inicio, se realiza una copia de seguridad incremental. Esto es algo que tengo que estudiar, porque soy consciente que Termux, admite utilizar cron, en particular con Termux-Services. Supongo que en los próximos días lo estudiaré y veré lo que conlleva, porque al final es tener una herramienta como Termux siempre en funcionamiento en segundo plano.
pkg install termux-services
pkg install cronie
sv-enable enable
Indicar que después de instalar termux-services
, necesitas reiniciar Termux. Por otro lado, tienes que habilitar que Termux esté funcionando en segundo plano, como te indicaba anteriormente.
Sobre S3 y Minio
Hasta hace unos meses no le estaba dando mucho uso a S3, sin embargo, desde entonces se ha convertido en un compañero inseparable que me ha permitido ir dando mucha mas funcionalidad. Esto me hace plantearme la opción de dedicarle algún episodio para explorar todas las opciones que nos ofrece.
El gran incoveniente de S3 es que es un servicio de pago, y que no es precisamente barato. Sin embargo, Minio es una alternativa Open Source que nos permite tener un servicio de almacenamiento compatible con S3 en nuestro propio servidor. Y, en mi caso, en mi propio ordenador de sobremesa. Pero a la vez, también es un inconveniente porque te obliga a tener instalar, configurar y mantener ese servicio, es algo que tienes que tener en cuenta y valorar.
Para mi, y por el momento, no ha representado ningún problema, ni la instalación, ni su mantenimiento, es algo que ha sido muy fácil. Con lo que, desde mi punto de vista es una opción a tener muy en cuenta.
Ventajas e inconvenientes de la solución
Respecto a las ventajas, te puedo mencionar las siguientes, que mas o menos e ido desvelando a lo largo del episodio,
- Flexibilidad y control total sobre los backups.
- Seguridad y encriptación de datos.
- Ahorro de costos en comparación con otros servicios de almacenamiento.
Pero no todo son ventajas, también tiene sus inconvenientes,
- Curva de aprendizaje para usuarios no técnicos.
- Dependencia de la configuración correcta de Termux y MinIO.
- Posibles limitaciones de espacio en dispositivos Android.
Más información,
Saludos. Siempre te escucho desde Honduras. Por lo general desde geekland en telegram. Y lo que mas me gusta es que compartes aplicaciones, que quizás de otra forma serian desconocidas para mi.