Simple-Backup

Icono de Simple-Backup

Simple-Backup

Copias de seguridad incrementales para Linux Mint (Cinnamon), en un único script de bash. Fácil de usar y programar para que tus archivos (fotos, documentos, programas, etc) siempre esten guardados y resincronizados con el origen de archivos que se pretende copiar. Nunca te equivocarás con los archivos que tienes que actualizar en tu disco externo, nunca tendrás que pensar en aquel archivo que modificaste pero que no has actualizado en tu carpeta de copia de seguridad del disco externo. Todo eso y más resuelve este pequeño programa

Licencia GPLv3 Bash Linux Mint

Nota sobre el idioma: este proyecto (script, menús, documentación) está en español. Si veo interés de gente que lo necesite en inglés, prepararé una traducción — más detalles al final del documento, en Roadmap.


Simple-Backup es un script interactivo que copia tus carpetas personales (Documentos, Música, Imágenes, Vídeos, Descargas…) a otro disco —normalmente uno externo, aunque también puede ser un segundo disco interno— usando rsync. No crea una imagen del disco: copia archivos reales, navegables, que puedes abrir directamente desde el explorador de archivos en cualquier PC. Además, deja crear snapshots completos del sistema con Timeshift y programar todo por cron, sin tener que tocar la terminal cada vez.

1menu-simple-backup 2menu-rutas-simple-backup 3menu-copiaauto-simple-backup

¿Por qué este script y no otra cosa?

Hay dos formas habituales de hacer copias de seguridad en Linux: crear una imagen del disco (con dd, Clonezilla…) o usar una herramienta de snapshots del sistema (Timeshift, Déjà Dup…). Ambas son útiles, pero ninguna resuelve bien el caso más común: “quiero que mis fotos, documentos y música estén también en el disco externo, tal cual, por si el ordenador muere mañana”.

Con una imagen no puedes entrar y coger un solo archivo sin restaurarla entera. Simple-Backup, en cambio, usa rsync para copiar solo lo nuevo o modificado en cada ejecución, dejando en el disco externo la misma estructura de carpetas que tienes en casa. Enchufas el disco en cualquier ordenador y ahí están tus archivos, sin depender de ningún software para recuperarlos.

Lo que aporta el script encima de un simple rsync -a a mano:

Tabla de contenidos

Funciones

Copia de seguridad de archivos personales

Snapshots del sistema completo (Timeshift)

Aparte de tus archivos personales, el menú incluye acceso directo a Timeshift para snapshots del sistema (el sistema operativo entero, no tus documentos): crear una snapshot al momento, ver las existentes, abrir la interfaz gráfica, o configurar en qué disco/partición se guardan. Si no tienes Timeshift instalado, el script se ofrece a instalarlo.

Automatización

Otras cosas útiles

Instalación

Requisitos:

Paquete Necesario para ¿Obligatorio?
bash ≥ 4.3 Ejecutar el script
rsync Hacer las copias
xdg-user-dirs Detectar tus carpetas personales
zenity Selector gráfico de carpetas No (si falta, se escriben las rutas a mano)
libnotify-bin Notificaciones de escritorio No
timeshift Snapshots del sistema No, solo si usas esa función
cron Copias programadas No, solo si usas esa función

Si te falta algo de lo obligatorio, el propio script lo detecta al arrancar y te ofrece instalarlo con apt.

Pasos:

git clone https://github.com/filonux/Simple-Backup.git
cd simple-backup
chmod +x script/simple-backup.sh
./script/simple-backup.sh

Con eso ya se lanza el asistente de primer uso.

Uso

Menú interactivo (uso normal):

./script/simple-backup.sh

El menú principal tiene seis opciones: configurar rutas de origen y destino, ejecutar la copia ahora, crear una snapshot del sistema, programar copias automáticas, ver el historial de logs, y activar o desactivar el modo espejo.

De cero a copias automáticas, paso a paso:

  1. Primera ejecución. Al no encontrar configuración previa, el script lanza el asistente de primer uso él solo, sin que tengas que buscar nada en el menú. Pregunta si quieres detectar tus carpetas personales automáticamente (Documentos, Música, Imágenes…) y, si dices que sí, te lleva directo a elegir el disco de destino de una lista de unidades montadas (con etiqueta, tamaño, y si son internas o externas).
  2. Primera copia. Ya en el menú principal, con origen y destino configurados, la opción 2 lanza la copia: el script comprueba que el destino esté accesible, con permisos de escritura y espacio suficiente, y copia carpeta por carpeta con una barra de progreso.
  3. Automatizar. Si quieres que se repita sola, la opción 4 solo pide la frecuencia (diaria o semanal), la hora y, si es semanal, el día: el script añade la tarea al crontab por ti, sin que tengas que tocarlo a mano.
  4. A partir de ahí. Cada vez que abras el script entras directo al menú principal —el asistente no vuelve a aparecer—, y las copias programadas corren solas en segundo plano, avisándote por notificación de escritorio de cómo fue cada una.

En resumen: clonas el repositorio, contestas un par de preguntas y eliges el disco de una lista numerada. En un par de minutos tienes copias automáticas funcionando, sin haber escrito una línea de rsync ni haber tocado el crontab a mano.

Otros comandos:

./script/simple-backup.sh --auto     # Ejecuta el backup ya configurado, sin menús (para cron)
./script/simple-backup.sh --version  # Muestra la versión instalada
./script/simple-backup.sh --help     # Muestra la ayuda

No hace falta que llames tú mismo a --auto: si programas una copia desde el menú (opción 4), el script se encarga de añadir la línea correspondiente al crontab.

Compatibilidad

Desarrollado y probado en Linux Mint 22.3 (Cinnamon). Al ser bash + rsync + herramientas estándar de GNU/Linux, debería funcionar sin cambios en cualquier distribución basada en Debian/Ubuntu (otras ediciones de Mint, Ubuntu, Pop!_OS, etc.), incluso con otros entornos de escritorio: las partes que dependen de Cinnamon en concreto son mínimas (principalmente los iconos de las notificaciones).

Un matiz: la instalación automática de dependencias que falten usa apt, así que en distribuciones que no lo usen (Fedora, Arch…) tendrás que instalar tú mismo rsync, xdg-user-dirs y, si quieres, zenity y timeshift con el gestor de paquetes correspondiente. Una vez instalados, el resto del script funciona igual.

Crea un lanzador de escritorio con Scriptya

Simple-Backup es un script, así que por defecto se lanza desde la terminal. Si prefieres tenerlo como una aplicación normal, con su propio icono en el menú de Cinnamon y/o en el escritorio, puedes usar Scriptya, otra herramienta del mismo autor.

Scriptya convierte cualquier script en una aplicación independiente, con icono propio, integrada en el menú y/o el escritorio. Y de paso, desde ese mismo lanzador puedes volver a abrir Scriptya en cualquier momento para actualizar el script envuelto o desinstalar la aplicación, sin líneas de comandos.

Dónde guarda sus cosas

Simple-Backup no toca nada fuera de tu carpeta personal salvo el propio disco de destino que tú elijas:

Qué Dónde
Configuración (carpetas, destino, exclusiones…) ~/.config/simple-backup/config.conf
Logs de cada copia ~/.local/share/simple-backup/logs/
Bloqueo de ejecución ~/.config/simple-backup/backup.lock

El archivo de configuración se genera y se sobrescribe automáticamente desde el menú: no hace falta (ni se recomienda) editarlo a mano.

Roadmap

Nada urgente, pero algunas ideas para cuando haya tiempo (o interés de la gente que lo use):

Licencia

Publicado bajo licencia GNU GPLv3. Consulta el archivo LICENSE para el texto completo.

Contribuir

Las aportaciones son bienvenidas. Antes de abrir una issue o un pull request, échale un vistazo a CONTRIBUTING.md y al código de conducta. Para reportar un fallo o pedir una función nueva, usa las plantillas correspondientes en .github/ISSUE_TEMPLATE/. Si encuentras un problema de seguridad, sigue el proceso descrito en SECURITY.md en vez de abrir una issue pública.


Hecho por Filonux.