Búsqueda de sitios web

Copia de seguridad y restauración de datos utilizando Restic en Linux


Esta guía explica qué es Restic, cómo instalar Restic en varias distribuciones de Linux y, finalmente, cómo hacer copias de seguridad y restaurar datos usando Restic en sistemas operativos Linux.

Restic: una aplicación de respaldo rápida, segura y eficiente

Restic es un programa de copia de seguridad rápido, de código abierto, seguro y multiplataforma. Permite guardar múltiples revisiones de archivos y directorios en un repositorio cifrado almacenado en diferentes backends.

Restic utiliza criptografía para garantizar la confidencialidad e integridad de sus datos. Cifra los datos con AES-256 en modo contador y los autentica utilizando Poly1305-AES código de autenticación de mensajes criptográficos.

¡Hacer una copia de seguridad y restaurar datos con Restic es fácil y muy rápido! Solo transfiere los archivos modificados (copia de seguridad incremental) al igual que Rsync.

Usando Restic, podemos hacer copias de seguridad de archivos y directorios fácilmente en un disco local o en un sistema remoto, o en un almacenamiento en la nube. Restic admite backends de almacenamiento en la nube populares como AWS, Azure, BackBlaze, Google Cloud, OpenStack y algunos más.

Restic está escrito utilizando el lenguaje de programación Go y su código fuente está disponible gratuitamente en GitHub. Es una aplicación de copia de seguridad multiplataforma. Es compatible con GNU/Linux, macOS, FreeBSD, openBSD y Microsoft Windows.

Instalar Ristic en Linux

Restic está empaquetado para los sistemas operativos Linux más populares.

Instalar Restic en Alpine Linux:

sudo apk add restic

Instalar Restic en Arch Linux, EndeavourOS, Manjaro Linux:

Restic está disponible en los repositorios predeterminados de Arch Linux. Asegúrese de que el repositorio [Comunidad] esté habilitado e instale Restic en Arch Linux y sus variantes como EndeavourOS, Manjaro Linux usando Pacman como se muestra a continuación.

sudo pacman -S restic

Instalar Restic desde AUR:

Restic también está disponible en AUR. Por lo tanto, puede instalarlo utilizando cualquier ayudante de AUR, como Paru o Yay, en sistemas basados en Arch.

paru -S restic-git

O,

yay -S restic-git

¡Instalar Restic en Debian, Ubuntu, Linux Mint, Pop_OS!:

sudo apt-get install restic

Instalar Restic en Fedora:

sudo dnf install restic

Instalar Restic en RHEL, CentOS, AlmaLinux y Rocky Linux:

sudo dnf copr enable copart/restic
sudo dnf install restic

Instalar Restic en Solus:

sudo eopkg install restic

Instalar Restic en Nix OS:

nix-env --install restic

Instalar Restic en openSUSE:

sudo zypper install restic

Instalar restic usando Linuxbrew:

brew install restic

Instalar Restic desde la fuente:

Para otros sistemas operativos, puede compilarlo e instalarlo como se muestra a continuación. Primero, asegúrese de haber instalado el idioma Go en su sistema.

  • Cómo instalar Go Language en Linux

Una vez instalado Go, git clone el repositorio github restic:

git clone https://github.com/restic/restic

Este comando clonará todo el contenido del repositorio restic en el directorio de trabajo actual.

CD en el directorio restic:

cd restic

E instale Restic como se muestra a continuación:

go run build.go

Verifique la versión Restic instalada:

$ restic version
restic 0.12.0 compiled with go1.14.12 on linux/amd64

Actualizar restic

Si ha instalado Restic desde repositorios oficiales, podría ser una versión un poco antigua.

Para actualizar Restic a la última versión, ejecute:

sudo restic self-update

Ahora verifica su versión con el comando:

$ restic version
restic 0.12.1 compiled with go1.16.6 on linux/amd64

Copia de seguridad y restauración de datos usando Restic en Linux

Restic admite los siguientes backends para almacenar la copia de seguridad:

  1. directorio local,
  2. servidor sftp (a través de SSH),
  3. servidor REST HTTP,
  4. AWS S3,
  5. OpenStack rápido,
  6. BackBlaze B2,
  7. Almacenamiento de blobs de Microsoft Azure,
  8. almacenamiento en la nube de Google,
  9. Y muchos otros servicios a través del rclone.

Ahora, veamos cómo hacer una copia de seguridad y restaurar datos en un directorio local.

Crear nuevo repositorio local

Primero, creemos un repositorio para almacenar la copia de seguridad. Por ejemplo, voy a crear un repositorio llamado mybackup en mi directorio $HOME.

restic init --repo ~/mybackup

Ingrese la contraseña del repositorio dos veces. Debe recordar la contraseña para acceder a este repositorio más adelante. De lo contrario, perderá permanentemente los datos almacenados en el repositorio. ¡Usted ha sido advertido!

enter password for new repository: 
enter password again: 
created restic repository c1c5bcfdb8 at /home/sk/mybackup

Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.

Crear un repositorio local usando Restic

Como puede ver en el resultado anterior, se crea un repositorio restic local con ID c1c5bcfdb8 en /home/sk/mybackup ubicación.

Ahora es el momento de hacer una copia de seguridad de sus datos en el repositorio recién creado.

Copia de seguridad de datos en el directorio local usando Restic

Voy a hacer una copia de seguridad de todo el directorio ~/mydata (incluido el directorio mismo) en el repositorio ~/mybackup usando el comando:

restic -r ~/mybackup backup ~/mydata

Ingresa la contraseña de tu repositorio:

Salida de muestra:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
no parent snapshot found, will read all files

Files:           7 new,     0 changed,     0 unmodified
Dirs:            4 new,     0 changed,     0 unmodified
Added to the repo: 21.919 MiB

processed 7 files, 21.913 MiB in 0:00
snapshot 7457d80e saved

Copia de seguridad de un directorio en el repositorio local usando Restic

Como puede ver, restic creó la copia de seguridad del directorio dado, es decir, misdatos. Además, creé una instantánea de la copia de seguridad actual con un nombre único 7457d80e.

Analicemos el comando anterior y veamos qué hace cada opción.

  • restic: El comando restic
  • -r: Indica repositorio
  • ~/mybackup : Nombre del repositorio
  • backup - Subcomando Restic para realizar copias de seguridad de archivos/carpetas
  • ~/mydata: el directorio del que se realizará la copia de seguridad.

Agregue más archivos/carpetas en el directorio de respaldo. Por ejemplo, agregué un nuevo archivo llamado vi editor.pdf en el directorio ~/mydata. Ahora, ejecuta el mismo comando restic nuevamente:

$ restic -r ~/mybackup backup ~/mydata
enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
using parent snapshot 7457d80e

Files:           1 new,     0 changed,     7 unmodified
Dirs:            0 new,     3 changed,     1 unmodified
Added to the repo: 50.123 KiB

processed 8 files, 21.957 MiB in 0:00
snapshot 963d4de3 saved

Agregar nuevos datos al repositorio usando Restic

Restic seguirá creando nuevas instantáneas con un nombre único cada vez que lo ejecutemos.

Dado que Restic realiza copias de seguridad incrementales, las copias de seguridad posteriores serán bastante más rápidas que las anteriores. Podemos seguir agregando los datos en la carpeta de respaldo y ejecutar la copia de seguridad para crear muchas instantáneas.

No sólo los directorios, Restic también nos permite realizar copias de seguridad de archivos individuales.

restic -r ~/mybackup backup ~/mydata/vi\ editor.pdf 

Salida de muestra:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
no parent snapshot found, will read all files

Files:           1 new,     0 changed,     0 unmodified
Dirs:            3 new,     0 changed,     0 unmodified
Added to the repo: 47.129 KiB

processed 1 files, 45.139 KiB in 0:00
snapshot 59439d78 saved

Como puede ver, se crea una nueva instantánea denominada 59439d78 en el repositorio.

Listar instantáneas

Para enumerar las instantáneas disponibles en un repositorio local, ejecute:

restic -r ~/mybackup snapshots

Salida de muestra:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
ID        Time                 Host        Tags        Paths
----------------------------------------------------------------------
7457d80e  2021-08-13 12:51:58  ostechnix               /home/sk/mydata
963d4de3  2021-08-13 12:57:55  ostechnix               /home/sk/mydata
----------------------------------------------------------------------
2 snapshots

Listar instantáneas

Como puede ver, tengo 2 instantáneas, a saber, 7457d80e y 963d4de3.

Verifique la diferencia entre dos instantáneas

Para verificar la diferencia entre dos instantáneas, podemos usar la opción diff como se muestra a continuación:

restic -r ~/mybackup diff 7457d80e 963d4de3

Este comando compara las dos instantáneas dadas y enumera las diferencias, es decir, qué archivos se agregan, cuántos archivos y directorios se eliminan del repositorio.

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
comparing snapshot 7457d80e to 963d4de3:

+    /home/sk/mydata/vi editor.pdf

Files:           1 new,     0 removed,     0 changed
Dirs:            0 new,     0 removed
Others:          0 new,     0 removed
Data Blobs:      1 new,     0 removed
Tree Blobs:      4 new,     4 removed
  Added:   50.123 KiB
  Removed: 4.511 KiB

Verifique la diferencia entre dos instantáneas

Como ves, he añadido un nuevo archivo pdf en la copia de seguridad.

Excluir archivos y carpetas

También es posible excluir algunos archivos o directorios. Por ejemplo, el siguiente comando excluirá todos los archivos de tipo .doc:

restic -r ~/mybackup backup --exclude=*.doc ~/mydata

Alternativamente, puede colocar la ubicación real de todos los archivos y carpetas que desea excluir de la copia de seguridad en un archivo y especificar su ruta en el comando de copia de seguridad.

Por ejemplo, cree un archivo llamado excluir:

vi exclude.txt

Agregue los archivos o carpetas que desea excluir:

*.txt
ostechnix.zip
mydata/movies

Ahora, inicie el proceso de copia de seguridad usando el comando:

restic -r ~/backup backup --exclude-file=exclude.txt ~/mydata

Para obtener más detalles sobre el comando restic backup, ejecute:

restic help backup

Ahora, hemos realizado una copia de seguridad exitosa de nuestros datos. A continuación veremos cómo restaurar los datos desde la copia de seguridad local.

Restaurar datos usando Restic

¡Restaurar datos es fácil!

Primero, enumere las instantáneas disponibles en el repositorio usando el comando:

restic -r ~/mybackup snapshots

Salida de muestra:

repository c1c5bcfd opened successfully, password is correct
ID        Time                 Host        Tags        Paths
----------------------------------------------------------------------
7457d80e  2021-08-13 12:51:58  ostechnix               /home/sk/mydata
963d4de3  2021-08-13 12:57:55  ostechnix               /home/sk/mydata
----------------------------------------------------------------------
2 snapshots

Como puede ver en el resultado anterior, tengo dos instantáneas.

Para restaurar los datos de una instantánea específica, por ejemplo 7457d80e, ejecute:

restic -r ~/mybackup restore 7457d80e --target ~/mydata

Salida de muestra:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
restoring <Snapshot 7457d80e of [/home/sk/mydata] at 2021-08-13 12:51:58.592771333 +0530 IST by sk@ostechnix> to /home/sk/mydata

Restaurar datos usando Restic

Acabamos de restaurar los datos de la instantánea 7457d80e al directorio ~/mydata.

Para restaurar un solo archivo desde la instantánea, hacemos:

restic -r ~/mybackup restore 7457d80e --target ~/mydata file.json

Para obtener más detalles, consulte la sección de ayuda del comando restore.

restic help restore

Montar el repositorio para ver los datos de la copia de seguridad

Puede explorar la copia de seguridad como un sistema de archivos normal. Esto resulta útil cuando desea ver el contenido del repositorio.

Primero, crea un punto de montaje:

mkdir ostechnix

Luego, monte su repositorio en el punto de montaje ostechnix como se muestra a continuación.

restic -r ~/mybackup mount ostechnix/

Este comando montará el repositorio Restic en su sistema de archivos local.

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
Now serving the repository at ostechnix/
When finished, quit with Ctrl-c or umount the mountpoint.

Ahora, abre tu administrador de archivos y verás que tu repositorio está montado allí. Vaya a la carpeta de instantáneas y verifique los datos.

Montar el repositorio Restic en el sistema de archivos

Cuando haya terminado, presione Ctrl-c para salir o desmontar el punto de montaje del Administrador de archivos.

Para más detalles, consulta la sección de ayuda:

restic help mount

Eliminar instantáneas

Primero, enumere todas las instantáneas disponibles en un repositorio:

$ restic -r ~/mybackup snapshots
enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
ID        Time                 Host        Tags        Paths
----------------------------------------------------------------------
7457d80e  2021-08-13 12:51:58  ostechnix               /home/sk/mydata
963d4de3  2021-08-13 12:57:55  ostechnix               /home/sk/mydata
----------------------------------------------------------------------
2 snapshots

Para eliminar una instantánea, por ejemplo 963d4de3, ejecute:

restic -r ~/mybackup forget 963d4de3

Salida de muestra:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
[0:00] 100.00%  1 / 1 files deleted

Compruebe si la instantánea se elimina o no:

$ restic -r ~/mybackup snapshots
enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
ID        Time                 Host        Tags        Paths
----------------------------------------------------------------------
7457d80e  2021-08-13 12:51:58  ostechnix               /home/sk/mydata
----------------------------------------------------------------------
1 snapshots

Eliminar instantáneas usando Restic

¡La instantánea desapareció! Sin embargo, los datos a los que hacen referencia los archivos en esta instantánea todavía están almacenados en el repositorio.

Para limpiar datos sin referencia, ejecute:

restic -r ~/mybackup prune

Salida de muestra:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
loading indexes...
loading all snapshots...
finding data that is still in use for 1 snapshots
[0:00] 100.00%  1 / 1 snapshots
searching used packs...
collecting packs for deletion and repacking
[0:00] 100.00%  8 / 8 packs processed

to repack:            0 blobs / 0 B
this removes          0 blobs / 0 B
to delete:            5 blobs / 50.279 KiB
total prune:          5 blobs / 50.279 KiB
remaining:           25 blobs / 21.919 MiB
unused size after prune: 0 B (0.00% of remaining size)

rebuilding index
[0:00] 100.00%  6 / 6 packs processed
deleting obsolete index files
[0:00] 100.00%  3 / 3 files deleted
removing 2 old packs
[0:00] 100.00%  2 / 2 files deleted
done

Después de eliminar todas las instantáneas y los datos asociados, puede eliminar el repositorio.

rm -fr ~/mybackup/

Conclusión

Ahora sabe cómo instalar y utilizar el programa de copia de seguridad Restic para salvaguardar sus datos importantes. Sólo hemos cubierto cómo guardar archivos y carpetas en el directorio local con Restic. ¡Hay más! En nuestras próximas guías, veremos cómo hacer una copia de seguridad de los datos en un sistema remoto y en un almacenamiento en la nube.

También te recomiendo que consultes la documentación oficial de Restic para un uso más detallado.

Recursos:

  • Sitio web de Restic
  • Repositorio Restic GitHub

Lectura relacionada:

  • Cómo hacer una copia de seguridad de todo su sistema Linux usando Rsync
  • Cómo hacer una copia de seguridad de archivos y directorios usando Rsync en Linux
  • Cómo hacer una copia de seguridad y restaurar archivos usando Deja Dup en Linux
  • Cómo configurar el servidor de respaldo usando Rsnapshot
  • Cómo hacer una copia de seguridad y restaurar el sistema Linux con Timeshift
  • Cómo sincronizar archivos con Unison en Linux
  • Cómo sincronizar directorios locales y remotos en Linux
  • Cómo sincronizar archivos y directorios usando Zaloha.sh
  • CYA: utilidad de restauración e instantánea del sistema para Linux

Artículos relacionados