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:
- Directorio local,
- servidor sftp (a través de SSH),
- servidor HTTP REST,
- AWS S3,
- OpenStackSwift,
- BackBlaze B2,
- Almacenamiento de blobs de Microsoft Azure,
- Almacenamiento en la nube de Google,
- 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 repositoriobackup
- 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.