Simple-Backup

Icono de Simple-Backup

Simple-Backup

Copias de seguridad incrementales para Linux Mint (Cinnamon), en un pequeño proyecto en bash. Mantén tus archivos (fotos, documentos, programas...) siempre sincronizados con tu disco externo, sin tener que adivinar nunca qué falta por actualizar.

Licencia GPLv3 Bash Linux Mint

Idioma: el proyecto está disponible en español e inglés. El script detecta automáticamente si el locale efectivo del sistema es español; en cualquier otro caso arranca en inglés. Pulsa l o L en el menú principal para alternar entre español e inglés. La elección queda guardada para las siguientes ejecuciones.

Read in English / Leer en inglés


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

menu-simple-backup-es config-simple-backup-es simple-backup-automatic-backup-es simple-backup-config-check-es simple-backup-mirror-delete-es simple-backup-quick-help-es

¿Por qué este script y no otra cosa?

Para copias de seguridad en Linux se suele recurrir a una imagen de disco (dd, Clonezilla…) o a snapshots del sistema (Timeshift, Déjà Dup…). Ninguna resuelve bien el caso más común —tener tus fotos, documentos y música también en el disco externo, tal cual, por si el ordenador muere mañana—, porque una imagen no se puede abrir para coger un solo archivo sin restaurarla entera. Simple-Backup 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 PC y ahí están tus archivos, sin depender de ningún software para recuperarlos.

Encima de un rsync -a a mano, el script aporta:

Tabla de contenidos

Funciones

Copia de seguridad de archivos personales

Snapshots del sistema completo (Timeshift)

El menú da acceso directo a Timeshift para snapshots del sistema completo (no tus documentos): crear uno al momento, ver los existentes, abrir su interfaz gráfica o elegir el disco/partición donde se guardan. Si no está 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 Sí
rsync Hacer las copias Sí
xdg-user-dirs Detectar tus carpetas personales Sí
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.

¿Prefieres no depender de la terminal? Scriptya, otra herramienta del mismo autor, permite lanzar, instalar, desinstalar y cambiar el icono de Simple-Backup como si fuera cualquier otra aplicación, con menú propio y sin escribir comandos. Basta con apuntarla a la carpeta script/ de este repositorio.

Uso

Menú interactivo (uso normal):

./script/simple-backup.sh

El menú principal tiene siete 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, activar o desactivar el modo espejo, y verificar la configuración sin copiar nada.

De cero a copias automáticas: la primera ejecución lanza el asistente de primer uso, que detecta tus carpetas y te lleva a elegir el disco de destino de una lista de unidades montadas. Con eso configurado, la opción 2 lanza la primera copia, y la opción 4 solo pide frecuencia (diaria o semanal), hora y, si aplica, día, para dejarla programada en el crontab por ti. A partir de ahí entras siempre directo al menú principal, y las copias programadas corren solas, avisándote por notificación de escritorio del resultado de cada una — todo sin escribir una línea de rsync ni tocar 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 usar bash, rsync y herramientas estándar de GNU/Linux, debería funcionar sin cambios en cualquier distribución basada en Debian/Ubuntu y con otros entornos de escritorio (lo específico de Cinnamon se reduce casi todo a los iconos de las notificaciones). La única salvedad es que la instalación automática de dependencias usa apt: en distribuciones que no lo usen (Fedora, Arch…) tendrás que instalar rsync, xdg-user-dirs y, si quieres, zenity y timeshift tú mismo; el resto del script funciona igual.

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

Se genera y sobrescribe automáticamente desde el menú: no hace falta (ni se recomienda) editarlo a mano.

Idioma

La selección de idioma es independiente del locale del sistema: en una configuración nueva, Simple-Backup comprueba LC_ALL, LC_MESSAGES y LANG, en ese orden, y arranca en español solo si detecta un locale español (es, es_ES, es-ES…); cualquier otro caso arranca en inglés. El atajo l/L del menú principal cambia entre ambos y guarda la elección en UI_LANGUAGE (dentro de ~/.config/simple-backup/config.conf), que a partir de ahí manda sobre la detección automática; las configuraciones existentes sin ese campo se comportan como auto.

El código se comenta en inglés; la interfaz y la documentación están traducidas.

Pruebas

Incluye una batería de regresión centrada en contratos de comportamiento: catálogos de idioma, precedencia del locale, comportamiento real de rsync, exclusiones, borrado espejo, bloqueo, integración con cron, helpers de Timeshift y clasificación de códigos de salida, entre otros — con fixtures temporales y mocks deterministas para que cada fallo señale un contrato concreto. Ejecútala con bash tests/test.sh; bash tests/mutation.sh comprueba que regresiones intencionadas (cambio de idioma, textos del menú, exclusiones, borrado espejo…) se detectan de verdad.

Roadmap

Licencia

Publicado bajo licencia GNU GPLv3. Consulta el archivo LICENSE.txt 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.