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:
- directorio local,
- servidor sftp (a través de SSH),
- servidor REST HTTP,
- AWS S3,
- OpenStack rápido,
- 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
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 repositoriobackup
- 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