GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo hacer una copia de seguridad y restaurar datos usando Ristic en Linux

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

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

Resto es un programa de respaldo rápido, de código abierto, seguro y multiplataforma. Permite guardar múltiples revisiones de archivos y directorios en un repositorio encriptado 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 autentificarlo usando Poly1305-AES código de autenticación de mensaje criptográfico.

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

Con 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 se escribe usando Go El lenguaje de programación 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 Restic en Linux

Restic está empaquetado para los sistemas operativos Linux 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úrate de que la [Community] repositorio 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 asistente de AUR, como Paru o Yay , en sistemas basados ​​en Arch.

$ paru -S restic-git

O,

$ yay -S restic-git

¡Instala 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 Go idioma en su sistema.

  • Cómo instalar Go Language en Linux

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

$ 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 instala Restic como se muestra a continuación:

$ go run build.go

Compruebe la versión de 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 verifique 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 HTTP REST,
  4. AWS S3,
  5. OpenStackSwift,
  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

Introduzca la contraseña del repositorio dos veces. Debe recordar la contraseña para acceder a este repositorio más adelante. De lo contrario, perderá de forma permanente los datos almacenados en el repositorio. ¡Has 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.

Como puede ver en el resultado anterior, un repositorio restic local con ID c1c5bcfdb8 se crea 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 ~/mydata directorio (incluido el propio directorio) al repositorio ~/mybackup usando el comando:

$ restic -r ~/mybackup backup ~/mydata

Introduce 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

Como puede ver, restic creó la copia de seguridad del directorio dado, es decir, mydata . 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 respaldar archivos/carpetas
  • ~/mydata - El directorio para respaldar.

Agregue más archivos/carpetas en el directorio de copia de seguridad. Por ejemplo, agregué un nuevo archivo llamado vi editor.pdf en ~/mydata directorio. Ahora, vuelve a ejecutar el mismo comando restic:

$ 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

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 copias de seguridad anteriores. Podemos seguir agregando los datos en la carpeta de copia de seguridad y ejecutar la copia de seguridad para crear muchas instantáneas.

No solo los directorios, Restic también nos permite hacer 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.

Mostrar 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

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

Comprueba la diferencia entre dos instantáneas

Para verificar la diferencia entre dos instantáneas, podemos usar diff opción como la siguiente:

$ restic -r ~/mybackup diff 7457d80e 963d4de3

Este comando compara las dos instantáneas proporcionadas 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

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 .doc tipo de archivos:

$ 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 más detalles sobre restic backup comando, ejecute:

$ restic help backup

Ahora, hemos realizado con éxito una copia de seguridad 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 del repositorio usando el comando:

$ restic -r ~/mybackup snapshots

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

$ 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 [email protected]> to /home/sk/mydata

Acabamos de restaurar los datos de la instantánea 7457d80e a ~/mis datos directorio.

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 restore sección de ayuda de comandos.

$ restic help restore

Montar repositorio para ver datos de copia de seguridad

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

Primero, crea un punto de montaje:

$ mkdir ostechnix

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

$ restic -r ~/mybackup mount ostechnix/

Este comando montará el repositorio de 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, abra su administrador de archivos y verá que su repositorio está montado allí. Vaya a la carpeta de instantáneas y verifique los datos.

Cuando termines, presiona Ctrl-c para salir o desmontar el punto de montaje desde el 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 , ejecuta:

$ 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

¡La instantánea se ha ido! Sin embargo, los datos a los que hacían referencia los archivos en esta instantánea aún se almacenan 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 proteger sus datos importantes. Solo hemos cubierto cómo hacer una copia de seguridad de 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 consultar la documentación oficial de Restic para un uso más detallado.


Linux
  1. Cómo instalar y probar Ansible en Linux

  2. MySQL:cómo hacer una copia de seguridad (volcar) y restaurar una base de datos usando mysqldump

  3. Cómo instalar y usar Flatpak en Linux

  4. Cómo hacer una copia de seguridad y restaurar el repositorio SVN en Linux

  5. Cómo instalar MongoDB desde la fuente (y usando YUM) en Linux

Cómo instalar y usar PuTTY en Linux

Cómo hacer una copia de seguridad y restaurar el sistema Linux con Timeshift

Cómo hacer una copia de seguridad y restaurar archivos usando BorgBackup en Linux

Cómo hacer una copia de seguridad de archivos y directorios usando Rsync en Linux

Cómo utilizar Timeshift para realizar copias de seguridad y restaurar Linux

Cómo clonar y restaurar una partición de Linux usando el comando dd