Cómo hacer una copia de seguridad de tu Raspberry Pi

Hacer una copia de seguridad de tu Raspberry Pi no tiene que ser complicado. Aunque hay muchas soluciones de copia de seguridad sofisticadas disponibles, a veces el enfoque más simple es el más efectivo. En este artículo, te mostraré cómo utilizar rsync, una pequeña pero poderosa herramienta de línea de comandos que es perfecta para crear copias de seguridad locales fiables de tu configuración de Raspberry Pi.
Por qué Rsync es la mejor herramienta para hacer copias de seguridad de tu Pi
Rsync (sincronización remota) es una poderosa herramienta de sincronización y transferencia de archivos que viene preinstalada en tu Raspberry Pi.
En su núcleo, rsync copia archivos de un lugar a otro de manera eficiente, pero es mucho más inteligente que una simple operación de copia. Solo transfiere las partes de los archivos que han cambiado, ahorrando tiempo y recursos del sistema. Esto es especialmente útil al hacer copias de seguridad de archivos grandes que cambian con frecuencia.

Principalmente uso rsync para hacer copias de seguridad de mis datos de usuario importantes en el Pi. Por ejemplo, mantengo un servidor de galería de fotos en mi Raspberry Pi, y rsync es perfecto para mantener una copia de seguridad de todas esas valiosas imágenes en un disco externo, con archivos nuevos o modificados detectados y copiados automáticamente.
A diferencia de las herramientas de copia de seguridad que copian archivos enteros, rsync solo transfiere las porciones que han cambiado, haciendo que las copias de seguridad sean significativamente más rápidas y reduciendo el desgaste de tu tarjeta SD. Su interfaz de línea de comandos lo hace perfecto para la automatización con trabajos cron, mientras que la verificación de suma de comprobación integrada garantiza la integridad de la copia de seguridad. Lo mejor de todo es que la naturaleza ligera de rsync significa que no ralentizará tu Pi a menos que un proceso de copia de seguridad esté en ejecución, ni ocupará demasiado espacio de almacenamiento en la tarjeta SD.
Por estas razones, rsync es la mejor solución para mis necesidades, y creo que es una opción ideal para muchos otros usuarios de Raspberry Pi que quieren un sistema de copia de seguridad fiable y eficiente.
Usando Rsync para hacer copias de seguridad de archivos y carpetas de Raspberry Pi
La forma más sencilla de hacer una copia de seguridad de un directorio es con el comando:
rsync -av /directorio/origen /ubicación/de/respaldoPor ejemplo, para hacer una copia de seguridad de mi directorio home en un disco externo montado en “/media/backup”, utilizo el comando:
rsync -av --delete /home/david/immich-app /media/backuppara hacer una copia de seguridad de mi base de datos de biblioteca de fotos.

Aquí te explico lo que hacen las diferentes opciones:
-ahabilita el modo de archivo, que preserva los permisos de archivo, la propiedad y las marcas de tiempo.-vproporciona una salida detallada para que pueda ver qué se está copiando.--deleteelimina archivos de la ubicación de copia de seguridad que ya no existen en el origen.
Nota: También debes saber que rsync es particular acerca de las barras finales en las rutas. Una barra final en el origen significa “copia el contenido de este directorio” en lugar del directorio mismo. Por ejemplo, rsync -av --delete /home/pi/folder /media/backup copia el contenido de ‘folder’ directamente en ‘backup’, mientras que omitir la barra copia el directorio ‘folder’ mismo en ‘backup’.
Verifica tu copia de seguridad de Raspberry Pi
Antes de confiar en tu copia de seguridad, debes verificar que funcionó correctamente. La forma más sencilla de comprobarlo es utilizando la opción de ejecución en seco con rsync, que se puede especificar como -n o --dry-run. Ejecutar el comando:
rsync -avn --delete /home/pi/folder /media/backupdebería mostrar que no hay archivos que necesiten ser transferidos si tu copia de seguridad está actualizada.

Para una verificación más completa, puedes agregar la opción -c o --checksum a tu comando rsync. Aunque es más lenta que la comparación por marca de tiempo y tamaño por defecto, esto garantiza que cada archivo sea completamente idéntico entre el origen y la copia de seguridad al calcular las sumas de comprobación. Simplemente ejecuta:
rsync -avc --delete /home/pi/folder /media/backupLa forma más detallada de verificar tu copia de seguridad es utilizando el comando diff, que compara cada archivo y directorio entre tus ubicaciones de origen y copia de seguridad. Para realizar esta verificación, usa:
diff -r /home/pi/folder /media/backup/folderLa opción -r le dice a diff que verifique todos los subdirectorios recursivamente. Si el comando no produce salida, significa que tu copia de seguridad es idéntica a la fuente. Si hay diferencias, diff te mostrará exactamente qué archivos son diferentes o faltan.
Creando copias de seguridad completas de Raspberry Pi utilizando Rsync
En algunas situaciones, puede ser más conveniente y seguro hacer una copia de seguridad de toda tu tarjeta SD de Raspberry Pi en lugar de solo un puñado de carpetas importantes.
Para crear copias de seguridad completas de Raspberry Pi utilizando rsync, necesitarás un destino de copia de seguridad, ya sea otra tarjeta SD o un disco externo con suficiente espacio para contener tu sistema completo. El disco de copia de seguridad debe estar formateado con un sistema de archivos compatible con Linux como ext4 para preservar correctamente todos los permisos y atributos de archivo.
La parte más complicada de hacer una copia de seguridad de un sistema completo de Raspberry Pi es manejar correctamente los directorios y archivos especiales del sistema. En mi experiencia, la solución más fácil es excluir los directorios del sistema que no necesitan ser respaldados o podrían causar problemas si se restauran. Crea un archivo llamado “backup-exclude.txt” y añade los siguientes directorios del sistema que deben ser excluidos de la copia de seguridad:
- /proc/* # Información de procesos en tiempo de ejecución
- /sys/* # Información del kernel y del sistema
- /dev/* # Archivos de dispositivo
- /tmp/* # Archivos temporales
- /run/* # Datos en tiempo de ejecución
- /mnt/* # Puntos de montaje
- /media/* # Medios extraíbles
- /home/pi/.cache/* # Archivos de caché del usuario
- /lost+found # Directorio de recuperación del sistema de archivos
Con estas exclusiones en su lugar, puedes cerrar tantas aplicaciones en ejecución como puedas y luego ejecutar el siguiente comando de copia de seguridad:
sudo rsync -avxhP --delete --exclude-from=/home/pi/backup-exclude.txt / /media/backup/rootfs/La opción -x evita que rsync cruce límites del sistema de archivos, lo que podría causar problemas con los directorios del sistema. La opción -h hace que rsync muestre tamaños de archivo y velocidades de transferencia en un formato legible por humanos.
Automatizando copias de seguridad de rsync
Si bien las copias de seguridad completas creadas manualmente son útiles, prefiero automatizarlas utilizando el programador cron incorporado de Linux. Para configurar esto, crea un archivo llamado “backup-pi.sh” en tu directorio home con este contenido:
#!/bin/bash
BACKUP_DRIVE="/media/backup"
LOG_FILE="/home/pi/backup-log.txt"
# Verifica si el disco de copia de seguridad está montado
if ! mountpoint -q $BACKUP_DRIVE; then
echo "Disco de copia de seguridad no montado en $BACKUP_DRIVE" >> $LOG_FILE
exit 1
fi
# Crear un sello de tiempo para el registro
date >> $LOG_FILE
# Ejecutar la copia de seguridad con verificación de errores
sudo rsync -avxhP --delete \
--exclude-from=/home/pi/backup-exclude.txt \
/$BACKUP_DRIVE/rootfs/ \
>> $LOG_FILE 2>&1
# Registrar la finalización de la copia de seguridad
echo "Copia de seguridad finalizada en $(date)" >> $LOG_FILE
echo "-------------------" >> $LOG_FILEHaz que el script sea ejecutable con chmod +x backup-pi.sh, luego programa su ejecución utilizando cron. Escribe crontab -e y añade esta línea para ejecutar la copia de seguridad diariamente a medianoche:
00 00 * * * /home/pi/backup-pi.sh
Restaurando tus copias de seguridad de Rsync Raspberry Pi
Para restaurar archivos o directorios individuales, el proceso es sencillo. Simplemente intercambia el origen y el destino en tu comando rsync. Por ejemplo, para restaurar tu biblioteca de fotos desde la copia de seguridad:
rsync -av /media/backup/home/david/immich-app/ /home/david/immich-app/Para una restauración completa del sistema, primero necesitarás una instalación nueva de Raspberry Pi OS en tu tarjeta SD. Comienza instalando una copia nueva de Raspberry Pi OS en tu nueva tarjeta SD. Una vez que eso esté hecho, inicia tu Pi con la nueva tarjeta SD y completa el proceso de configuración inicial. A continuación, conecta tu disco de copia de seguridad a tu Pi. Cuando todo esté conectado y montado correctamente, puedes restaurar tu copia de seguridad utilizando el comando rsync:
sudo rsync -avxhP /media/backup/rootfs/ /Después de completar la restauración, recomiendo reiniciar tu Pi para verificar si todos los archivos restaurados se cargan correctamente. También debes verificar que tus servicios importantes y configuraciones estén funcionando como se espera.
Si ciertas aplicaciones no funcionan después de la restauración, verifica sus archivos de registro (generalmente en /var/log/) para detectar cualquier error relacionado con permisos. Puede que necesites ejecutar:
sudo chown -R $USER:$USER /home/$USERpara solucionar la propiedad de los archivos de tu directorio home. Como puedes ver, restaurar con rsync es tan fácil como crear copias de seguridad: solo invierte las rutas de origen y destino en tus comandos.
Si prefieres la simplicidad de la línea de comandos de rsync, hay varias excelentes alternativas de GUI si no te sientes cómodo con la terminal. Por ejemplo, Syncthing te permite sincronizar múltiples carpetas a través de diferentes sistemas, mientras que Timeshift ofrece funcionalidad de instantáneas del sistema con una interfaz limpia. Cualquiera que sea la herramienta que elijas, lo importante es mantener copias de seguridad regulares de tu Raspberry Pi para proteger tus valiosos datos y configuraciones del sistema.
Todas las imágenes son de David Morelo.