¿Qué es restic?
restic es un programa de copias de seguridad rápido, eficiente y seguro. Parte tus archivos en bloques definidos por su contenido y guarda cada bloque una sola vez, así que una segunda copia de un directorio que apenas ha cambiado transfiere casi nada. Todo se cifra y se autentica en tu máquina, con AES-256 y Poly1305-AES, antes de que salga un solo byte: el repositorio puede vivir en un sitio del que no te fías del todo. Las instantáneas son de solo añadir y se pueden listar, comparar, montar como sistema de archivos y restaurar archivo a archivo, cada cosa con un comando y sin ningún fichero de configuración que escribir.
prune y check, la reducción de memoria en repositorios grandes y los backends nuevos. La versión de la stable de Debian va años por detrás: un repositorio escrito por un restic actual puede resultar ilegible para uno antiguo, así que la máquina que restaura tiene que ser al menos tan nueva como la que hizo la copia. Usar la versión actual en todas partes es la forma más simple de que eso se cumpla.
⚡ Funciones clave de restic
🧩 Deduplicación que funciona de verdad
El troceado por contenido hace que un archivo sin cambios, uno que has movido y uno que existe en diez máquinas se guarden una sola vez. Las instantáneas diarias del mismo árbol cuestan la diferencia, no el árbol entero.
🔐 Cifrado antes de salir
AES-256 para el contenido y Poly1305-AES para la autenticación, hecho en el cliente. El repositorio no guarda texto en claro ni datos sin autenticar: un almacenamiento hostil puede perder tu copia, pero no leerla ni falsificarla.
☁️ Backends para todas partes
Un directorio local, SFTP, el servidor REST, Amazon S3 y todo lo compatible con S3, OpenStack Swift, Backblaze B2, Azure Blob Storage, Google Cloud Storage y cualquier otra cosa a través de rclone.
📸 Instantáneas que puedes recorrer
restic snapshots las lista, restic diff enseña qué cambió entre dos y restic mount deja todas bajo un directorio, para recuperar un archivo suelto con un simple cp.
🧹 Retención y limpieza
forget --keep-daily/--keep-weekly/--keep-monthly expresa una política de retención tal cual, y --prune recupera después el espacio dentro del repositorio.
🔎 Repositorios verificables
restic check valida la estructura del repositorio y --read-data vuelve a leer y verificar cada fichero de paquete, así que «la copia existe» y «la copia está íntegra» son dos preguntas que puedes responder de verdad.
apt upgrade te mantiene en la última versión.
📦 Instalación desde deb.griffo.io
Paso 1: Añadir el repositorio
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt update🆓 Existe un espejo gratis para siempre. deb-free.griffo.io sirve paquetes gratis para siempre: sin cuenta, sin suscripción, como máximo 2 meses por detrás del upstream, correcciones de seguridad inmediatas. Ahora mismo incluye cliamp, Ghostty, lazydocker, Oh My Posh y Zed; restic no está entre ellas, así que hoy el repositorio de arriba es la única forma de instalarlo — pídelo y puede añadirse.
Paso 2: Instalar restic
# Instalar la última versión de restic
sudo apt install restic
# Verificar la instalación
restic version# Instalar la última versión de restic
apt install restic
# Verificar la instalación
restic versionPaso 3: Crear tu primer repositorio
# Un repositorio es un directorio, local o remoto. Elige una contraseña y guárdala:
# sin ella los datos se pierden, y no hay forma de recuperarlos, por diseño.
restic init --repo /srv/backup/restic
# Copiar algo
restic -r /srv/backup/restic backup ~/Documents
# Ver lo que tienes
restic -r /srv/backup/restic snapshots
# Las páginas de manual y las completaciones de bash, fish y zsh vienen en el paquete
man restic🎯 Ejemplos básicos de uso
Hacer copias:
# Guarda la contraseña en un archivo en vez de teclearla en cada comando
echo 'una frase de paso larga' | sudo tee /etc/restic-password > /dev/null
sudo chmod 600 /etc/restic-password
export RESTIC_REPOSITORY=/srv/backup/restic
export RESTIC_PASSWORD_FILE=/etc/restic-password
# Copiar varias rutas, saltándote lo que una restauración no querría
restic backup ~/Documents ~/Pictures --exclude '**/node_modules' --exclude '*.iso'
# O guiarlo desde un archivo, un patrón por línea
restic backup ~ --exclude-file ~/.config/restic-excludes --exclude-caches
# Etiquetar una instantánea para encontrarla luego
restic backup /etc --tag config --tag "$(hostname)"# Guarda la contraseña en un archivo en vez de teclearla en cada comando
echo 'una frase de paso larga' | tee /etc/restic-password > /dev/null
chmod 600 /etc/restic-password
export RESTIC_REPOSITORY=/srv/backup/restic
export RESTIC_PASSWORD_FILE=/etc/restic-password
# Copiar varias rutas, saltándote lo que una restauración no querría
restic backup ~/Documents ~/Pictures --exclude '**/node_modules' --exclude '*.iso'
# O guiarlo desde un archivo, un patrón por línea
restic backup ~ --exclude-file ~/.config/restic-excludes --exclude-caches
# Etiquetar una instantánea para encontrarla luego
restic backup /etc --tag config --tag "$(hostname)"Restaurar y explorar:
# Qué hay en el repositorio
restic snapshots
restic ls latest /etc
# Restaurar todo desde la instantánea más reciente
restic restore latest --target /tmp/restore
# O solo las rutas que de verdad has perdido
restic restore latest --target / --include /etc/nginx
# Montar el historial entero y sacar un archivo a mano (hace falta FUSE)
sudo apt install fuse3
mkdir -p ~/mnt/backup
restic mount ~/mnt/backup
# Qué cambió entre dos instantáneas
restic diff 1a2b3c4d 5e6f7a8b# Qué hay en el repositorio
restic snapshots
restic ls latest /etc
# Restaurar todo desde la instantánea más reciente
restic restore latest --target /tmp/restore
# O solo las rutas que de verdad has perdido
restic restore latest --target / --include /etc/nginx
# Montar el historial entero y sacar un archivo a mano (hace falta FUSE)
apt install fuse3
mkdir -p ~/mnt/backup
restic mount ~/mnt/backup
# Qué cambió entre dos instantáneas
restic diff 1a2b3c4d 5e6f7a8bRepositorios remotos:
# SFTP: cualquier máquina a la que ya entres por ssh
restic -r sftp:backup@nas:/srv/restic init
# S3 y todo lo compatible con S3, incluidos Garage o MinIO autoalojados
export AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=...
restic -r s3:https://s3.example.com/backups init
# Backblaze B2
export B2_ACCOUNT_ID=... B2_ACCOUNT_KEY=...
restic -r b2:my-bucket:backups init
# Cualquier cosa a la que llegue rclone, que es todo lo demás
restic -r rclone:mydrive:backups initRetención, limpieza y verificación:
# Una política de retención, aplicada a todo el repositorio
restic forget --keep-daily 7 --keep-weekly 5 --keep-monthly 12 --prune
# Prueba primero, porque forget borra instantáneas
restic forget --keep-daily 7 --dry-run
# Comprobación de estructura, barata: hazla a menudo
restic check
# Releer y verificar una muestra de los datos reales, cara: hazla cada mes
restic check --read-data-subset 10%
# A dónde se va el espacio
restic stats --mode raw-data🔧 Integraciones con otras herramientas
restic está pensado para que lo gobiernen cosas que ya tienes en marcha:
- systemd: un servicio más un temporizador es el montaje desatendido de siempre;
RESTIC_REPOSITORYyRESTIC_PASSWORD_FILEvan en la unidad, no en el perfil del shell - rclone: el backend
rclone:le da a restic todos los proveedores que soporta rclone, sin que restic tenga que hablar ninguno de ellos - FUSE:
fuse3(ofuse) convierterestic mounten un directorio recorrible con todas las instantáneas, que es la vía más rápida para recuperar un archivo - rest-server: el backend HTTP propio de upstream, con modo de solo añadir, para que un cliente comprometido no pueda borrar las copias que hizo
- Bases de datos:
--stdinacepta un volcado por la entrada estándar, así quepg_dump … | restic backup --stdin --stdin-filename db.sqlnunca toca el disco
🚀 ¿Por qué elegir deb.griffo.io?
- Ubuntu oficial: incluye restic en universe, congelado el día de la release, así que un LTS puede llevar años de trabajo sobre el repositorio y la limpieza por detrás
- Binario upstream: actualizado, pero es un binario comprimido con bzip2 que descomprimes tú en
/usr/local/bin, fuera de apt, y que luego mantienes conrestic self-update - Snap: confinado, lo que complica copiar rutas fuera de tu carpeta personal y montar instantáneas
- deb.griffo.io: última versión con actualizaciones automáticas
- ✅ El mismo paquete, más nuevo: mismo nombre, misma sección y mismas rutas que el
resticde Ubuntu, así que sustituye al oficial en vez de instalarse aparte - ✅ Compilaciones upstream verificadas: cada binario se coteja con el
SHA256SUMSde upstream, y ese archivo con la clave de publicación de restic, antes de empaquetarlo - ✅ Actualizaciones automáticas: los paquetes se actualizan pocas horas después de cada versión upstream
- ✅ Paquete completo: el binario oficial upstream, el juego entero de páginas de manual (
restic.1más una por subcomando) y las completaciones de bash, fish y zsh - ✅ Seis arquitecturas: amd64, arm64, armhf, ppc64el, s390x y riscv64: el NAS, la Pi y el mainframe reciben el mismo restic
- ✅ Multidistribución: funciona en Ubuntu 22.04, 24.04, 25.10 y 26.04
- ✅ Mantenimiento sencillo: actualizaciones con los comandos apt de siempre
📦 Repositorio de compilación del paquete
Los paquetes de Ubuntu se compilan y mantienen automáticamente en este repositorio de GitHub:
- 💾 restic-debian - Compilaciones de las últimas versiones
🔗 Paquetes relacionados
También disponibles en deb.griffo.io:
- rclone - El backend que le da a restic todos los proveedores que le faltan
- Garage - Almacenamiento S3 autoalojado al que apuntar un repositorio
- Zellij - Multiplexor para dejar corriendo una primera copia larga
- bottom - Ver qué le hace a la máquina una copia grande
