Copias de seguridad en la nube con Kopia y Contabo Object Storage

Kopia es una herramienta libre, moderna y rápida para hacer copias de seguridad. Al igual que otras herramientas como Borg o Restic, Kopia permite tomar snapshots de los datos del usuario y guardarlos en un repositorio.

Tipos de repositorio

Kopia ofrece diferentes tipos de repositorio para almacenar las copias de seguridad:

  • Directorio local.
  • Servidor SFTP o WebDAV.
  • Proveedores de almacenamiento en la nube.
  • Servicios soportados por Rclone.

La herramienta almacena los backups de manera eficiente utilizando técnicas de deduplicación y compresión opcionales. Además, ofrece seguridad mediante cifrado y proporciona una interfaz sencilla tanto en la línea de comandos como en una interfaz gráfica.

Cuando se necesita recuperar datos de una copia de seguridad, es posible montar el snapshot correspondiente y acceder al contenido utilizando las herramientas habituales.

Instalación de Kopia

Dado que Kopia es una aplicación reciente, no está incluida en los repositorios oficiales de Ubuntu. Sin embargo, la instalación es sencilla. Puedes descargar el paquete .deb desde el repositorio oficial de Kopia y luego instalarlo en tu sistema utilizando el siguiente comando:

wget https://github.com/kopia/kopia/releases/download/v0.13.0/kopia_0.13.0_linux_amd64.deb -O /tmp/kopia.deb

dpkg -i /tmp/kopia.deb

Configuración del repositorio

A continuación, veremos cómo configurar un repositorio utilizando Contabo Object Storage como ejemplo. Para ello, necesitarás tener una cuenta en Contabo Object Storage y crear un bucket con el nombre de tu host. Asegúrate de obtener las credenciales de acceso, incluyendo el access key, secret key y endpoint.

Una vez que tengas estos datos, puedes ejecutar el siguiente comando para crear el repositorio en Kopia:

kopia repository create s3 --bucket=<nombre del bucket> --access-key=<access key> --secret-access-key=<secret key> --endpoint=eu2.contabostorage.com

No olvides reemplazar <nombre del bucket><access key><secret key> y eu2.contabostorage.com con los valores correspondientes proporcionados por Contabo Object Storage.

Configuración de políticas de retención

Kopia tiene una política de retención por defecto que controla la cantidad de snapshots almacenados. Sin embargo, puedes ajustar esta política según tus necesidades. A continuación se muestra un ejemplo de cómo establecer tus preferencias de retención:

kopia policy set --global --compression=zstd
kopia policy set --global --keep-annual 0
kopia policy set --global --keep-monthly 3
kopia policy set --global --keep-weekly 4
kopia policy set --global --keep-daily 7
kopia policy set --global --keep-latest 20

Estos comandos establecerán la compresión en zstd y definirán los períodos de retención para los backups anuales, mensuales, semanales, diarios y los snapshots más recientes. Puedes ajustar estos valores según tus necesidades específicas.

Script de respaldo

A continuación se muestra un ejemplo de un script de respaldo para Kopia, utilizando variables para los valores de acceso y configuración:

#!/bin/bash

export KOPIA_PASSWORD="<contraseña>"

ACCESS_KEY="<access key>"
SECRET_KEY="<secret key>"
ENDPOINT="eu2.contabostorage.com"
BUCKET_NAME="<nombre del bucket>"

# Conectar al repositorio S3
kopia repository connect s3 --bucket="$BUCKET_NAME" --access-key="$ACCESS_KEY" --secret-access-key="$SECRET_KEY" --endpoint="$ENDPOINT"

# Crear snapshot
kopia snapshot create /home/*/web/*/public_html --description "Websites $HOSTNAME"

# Ejecutar mantenimiento
kopia maintenance run --full

# Desconectar del repositorio
kopia repository disconnect

Asegúrate de reemplazar <contraseña><access key><secret key><endpoint> y <nombre del bucket> con los valores correspondientes. Además, asegúrate de establecer correctamente las rutas y los comandos según tu configuración específica.

Configuración del cron

Una vez que hayas creado el script de respaldo, puedes programar su ejecución utilizando el cron. Aquí tienes un ejemplo de cómo configurar el cron para que ejecute el script cada 15 minutos:

(crontab -l 2>/dev/null; echo "*/15 * * * * /etc/backup.sh") | crontab -

Asegúrate de que el script de respaldo se encuentre en la ubicación correcta (/etc/backup.sh) para que el cron pueda ejecutarlo adecuadamente.

Uso básico de Kopia

Listado de snapshots

Para listar los snapshots almacenados en el repositorio, puedes utilizar el siguiente comando:

kopia snapshot list

Acceso a los snapshots

Puedes acceder a los contenidos de un snapshot utilizando el siguiente comando:

kopia mount <snapshot-ID> <directorio-de-montaje>

Reemplaza <snapshot-ID> con el ID del snapshot que deseas montar y <directorio-de-montaje> con la ruta del directorio donde deseas montar el contenido.

Conclusiones

Kopia es una herramienta poderosa y eficiente para realizar copias de seguridad de manera segura. Con su soporte para diferentes tipos de repositorio, políticas de retención flexibles y características avanzadas, Kopia te brinda la confianza y tranquilidad de que tus datos estarán protegidos y disponibles para su recuperación en caso de cualquier eventualidad. Sigue los pasos mencionados en este artículo para configurar Kopia en tu entorno y asegurar la integridad de tus datos más valiosos. ¡No esperes más y comienza a respaldar tus datos con Kopia!