GNU/Linux >> Tutoriales Linux >  >> Linux

Tranquilidad con Restic Backup en Linux

La copia de seguridad es una de las cosas más críticas en todas las industrias, y es posible que esté buscando qué solución de copia de seguridad es más confiable. ¿Por qué no probar la copia de seguridad de Restic en Linux?

Restic es una solución de respaldo segura, rápida y confiable. Y en este tutorial, aprenderá a configurar el sistema de copia de seguridad Restic en un servidor Linux.

¡Siga leyendo y nunca más pierda ninguno de sus datos!

Requisitos

Este tutorial será una demostración práctica. Para seguir, asegúrese de tener lo siguiente:

  • Dos servidores Linux:este tutorial utiliza dos servidores Debian 11 llamados servidor1 y servidor de copia de seguridad .
  • Un usuario no root con privilegios sudo.

Instalación de Restic en Linux

Restic almacena datos en el repositorio encriptado, y cada vez que agrega datos al repositorio, Restic crea automáticamente una nueva instantánea. Pero antes de aprovechar la utilidad de respaldo de Restic, primero deberá instalar Restic en su máquina.

1. Abre tu terminal e inicia sesión en server1 máquina.

2. A continuación, ejecute el wget Comando a continuación para descargar el archivo binario de Restic. En el momento de escribir este artículo, la última versión de Restic es v0.12.1.

wget https://github.com/restic/restic/releases/download/v0.12.1/restic_0.12.1_linux_amd64.bz2

3. Ejecute los siguientes comandos para extraer el restic_0.12.1_linux_amd64.bz2 y verifique el restic_0.12.1_linux_amd64 existe un archivo binario.

# Extract restic_0.12.1_linux_amd64.bz2
bzip2 -dv restic_0.12.1_linux_amd64.bz2
# List the files to verify restic_0.12.1_linux_amd64 exists
ls

4. Ahora, ejecuta el chmod comando para hacer el restic_0.12.1_linux_amd64 archivo ejecutable, luego cambie el nombre y mueva el archivo al /usr/bin/restic directorio.

En este punto, ya puede ejecutar el comando restic en su servidor.

# Make Restic file executable
chmod +x restic_0.12.1_linux_amd64

# Installing Restic
mv restic_0.12.1_linux_amd64 /usr/bin/restic

5. Ejecute el restic Comando a continuación para generar la finalización de bash para Restic. De este modo, los usuarios podrán ejecutar fácilmente el restic dominio.

restic generate --bash-completion /etc/bash_completion.d/restic

6. Por último, ejecute el siguiente comando para volver a cargar la finalización de bash en su sesión de terminal actual, luego ejecute el restic comando y presiona TAB para mostrar las opciones disponibles para restic dominio.

Por último, ejecute los siguientes comandos para volver a cargar la finalización de bash en su sesión de terminal actual. Escriba restic y presione la tecla TAB para mostrar las opciones disponibles para el comando restic.

# reload bash completion
source /etc/profile.d/bash_completion.sh

# verify restic command
restic

Debería ver todas las opciones disponibles del comando restic , como se muestra a continuación.

Configuración de un servidor de respaldo

Ahora que ha instalado Restic en el server1 máquina, el siguiente paso es configurar el backup-server , para que pueda comenzar a respaldar sus datos a través del protocolo SFTP.

De forma predeterminada, Restic le permite realizar una copia de seguridad de los datos en el directorio local, el servidor remoto y el protocolo SFTP. Restic también le permite realizar copias de seguridad de datos en servicios de copia de seguridad en la nube de terceros, como Amazon S3, Azure Blog Storage, Backblaze B2 y Google Cloud Storage.

1. Abra una nueva terminal e inicie sesión en backup-server máquina.

2. A continuación, ejecute el siguiente comando para crear un nuevo usuario llamado johndoe y configurar una contraseña.

# create new user
useradd -m -s /bin/bash johndoe

# setup the password
passwd johndoe

3. Ejecute cada comando a continuación para crear un nuevo directorio de respaldo (/srv/backup ) para Restic y cambie la propiedad (chown ) al johndoe usuario y grupo. Este directorio almacenará todos los datos de respaldo del server1 máquina.

# create new backup directory
mkdir -p /srv/backup

# change ownership of the backup directory
sudo chown -R johndoe:johndoe /srv/backup

4. Ahora, cambia a server1 máquina y ejecute el siguiente comando para generar una clave SSH.

En lugar de utilizar la autenticación basada en contraseña, optará por la autenticación basada en clave. Una clave SSH es esencial, especialmente cuando se configura una copia de seguridad automática con un script de shell o se usan trabajos Cron.

ssh-keygen

Presione ENTER en las siguientes indicaciones, como se muestra a continuación. Al hacerlo, se establece la ubicación de almacenamiento de su clave SSH en el directorio predeterminado (~/.ssh) y se desactiva la contraseña para su clave privada SSH.

En este punto, en el directorio ~/.ssh , tendrá los archivos id_rsa (clave privada SSH) e id_rsa.pub (su clave pública).

5. Ejecute el ls comando a continuación para verificar que el id_rsa y id_rsa.pub los archivos existen en el ~/.ssh directorio.

ls ~/.ssh/

6. A continuación, ejecute el ssh-copy-id Comando a continuación para subir la clave pública SSH al backup-server . En esta demostración, el backup-server usa el nombre de usuario johndoe y la dirección IP 172.16.1.150 .

ssh-copy-id [email protected]

Cuando se complete la carga, recibirá el mensaje Número de claves añadidas:1 en su terminal.

7. Por último, ejecuta el ssh Comando a continuación para verificar y conectarse al backup-server .

ssh [email protected]

Tenga en cuenta que inició sesión automáticamente en el servidor de copia de seguridad sin autenticación de contraseña.

Inicializar un nuevo repositorio

Ahora ha configurado el servidor de copia de seguridad de Restic, por lo que el siguiente paso es inicializar un nuevo repositorio. Restic almacenará los datos de respaldo en un repositorio, y cada acción de respaldo crea una nueva instantánea dentro de ese repositorio.

1. Ejecute el restic comando a continuación para inicializar (init ) un repositorio (-r :/srv/backup ) utilizando el protocolo SFTP.

restic -r sftp:[email protected]:/srv/backup init

2. Ingrese una contraseña segura para el repositorio y confírmela. Recuerde la contraseña, ya que la usará para descifrar sus datos de respaldo.

Como se muestra a continuación, el nuevo repositorio (a9073b62d0) se crea en el servidor SFTP (sftp:[email protected]:/srv/backup).

3. Por último, ejecuta el restic Comando a continuación para verificar el repositorio. Se le pedirá que ingrese la contraseña que anotó previamente para el repositorio (paso dos).

restic -r sftp:[email protected]:/srv/backup check

Si no hay ningún error, obtendrá el mensaje No se encontraron errores, que se muestra a continuación.

Copia de seguridad de datos en un repositorio

Ahora ha inicializado el repositorio usando el servidor SFTP en el backup-server . Pero, ¿cómo se hace una copia de seguridad de los datos con Restic? Hará una copia de seguridad de los datos de server1 al repositorio en el backup-server .

1. Ejecute el restic Comando a continuación para hacer una copia de seguridad de los datos del /var/www/wordpress directorio al repositorio.

restic -r sftp:[email protected]:/srv/backup backup /var/www/wordpress

Ingrese la contraseña para el repositorio y, cuando se complete el proceso de copia de seguridad, Restic crea la instantánea (736949a9), como se muestra a continuación.

2. A continuación, ejecute el siguiente comando para enumerar todos los snapshots .

restic -r sftp:[email protected]:/srv/backup snapshots

Asegúrese de que la instantánea (736949a9) esté disponible en la lista, como se muestra a continuación

3. Ejecute el siguiente comando para listar todos los archivos (ls ) en la instantánea (736949a9 ).

restic -r sftp:[email protected]:/srv/backup ls 736949a9

Verá la lista de archivos en la instantánea (736949a9), que son los datos de la copia de seguridad del directorio /var/www/wordpress/ .

Además, puede ejecutar el siguiente comando para hacer una copia de seguridad de varios directorios (/var/www/wordpress y /var/www/html) en el mismo repositorio.

restic -r sftp:[email protected]:/srv/backup backup /var/www/wordpress /var/www/html

Observe a continuación que Restic creó una nueva instantánea (7b6e321e).

4. Ahora, ejecute cada comando a continuación para enumerar todas las instantáneas, las estadísticas de los archivos de copia de seguridad y la diferencia entre dos instantáneas (736949a97b6e321e ).

# checking list snapshots
restic -r sftp:[email protected]:/srv/backup snapshots

# show stats of repository
restic -r sftp:[email protected]:/srv/backup stats

# checking different between two snapshots
restic -r sftp:[email protected]:/srv/backup diff 736949a9 7b6e321e

A continuación, las instantáneas 736949a9 y 7b6e321e tienen los mismos datos de respaldo (/var/www/wordpress). Tenga en cuenta que los tamaños de sus archivos en el repositorio también son los mismos, ya que Restic solo realiza copias de seguridad de los cambios en los archivos, lo que hace que Restic sea rápido y eficiente.

Exclusión de archivos en procesos de copia de seguridad

La copia de seguridad de los datos es útil, pero ¿cómo se excluyen los datos innecesarios? Restic te permite excluir archivos/directorios con el --exclude-file opción durante el proceso de copia de seguridad.

El --exclude-file La opción puede excluir archivos basura, como archivos de registro, lo que hace que el proceso de copia de seguridad sea más rápido y limpio.

1. Ejecute el siguiente comando para crear un nuevo directorio llamado /opt/backup para almacenar los archivos respaldados.

mkdir -p /opt/backup

2. A continuación, cree un nuevo archivo (/opt/backup/excludes.txt ) con su editor de texto preferido y complete la siguiente configuración.

La siguiente configuración le dice a Restic que excluya archivos con diferentes tipos de archivos.

# excludes files .zip
*.tar.gz

# excludes directory logs
logs

# exclude .txt files on the directory data
data/*.txt

3. Ejecute el siguiente comando para hacer una copia de seguridad de los datos de /var/www/html directorio al repositorio (-r :/srv/backup ). El --exclude-files opción le dice a Restic que excluya los archivos y directorios enumerados en exludes.txt expediente.

restic -r sftp:[email protected]:/srv/backup backup /var/www/html --exclude-file=/opt/backup/excludes.txt

A continuación, Restic crea la nueva instantánea de copia de seguridad ca99be01, excluyendo los archivos que usted especificó en excludes.txt archivo.

4. Ahora, ejecute el siguiente comando para verificar la lista de archivos (ls ) en la instantánea ca99be01 .

restic -r sftp:[email protected]:/srv/backup ls ca99be01

Verá todos los archivos respaldados excepto aquellos que definió en el archivo de configuración (excludes.txt ).

5. Finalmente, ejecuta el tree Comando a continuación para verificar que la exclusión de datos funcione con Restic.

tree /var/www/html/

Como puede ver a continuación, el directorio /var/www/html contiene archivos de texto en su interior, pero Restic no los excluyó de la copia de seguridad.

Eliminar instantáneas del repositorio

En la mayoría de los casos, es posible que solo necesite dos o tres versiones de instantáneas como máximo. Entonces, ¿por qué no eliminar las instantáneas más antiguas? La eliminación de instantáneas requiere que conozca el ID de la instantánea, por lo tanto, consulte primero la lista de instantáneas.

1. Ejecute el siguiente comando para enumerar todas las instantáneas en el repositorio.

restic -r sftp:[email protected]:/srv/backup snapshots

Elija una ID de la instantánea para eliminar (736949a9).

2. A continuación, ejecute los siguientes comandos para eliminar (forget ) instantánea específica (736949a9 ), y sus datos restantes del repositorio.

# Removes snapshot only
restic -r sftp:[email protected]:/srv/backup forget 736949a9
# Removes remaining data from repository
restic -r sftp:[email protected]:/srv/backup prune

3. Ejecute el siguiente comando para realizar un --dry-run y ver qué instantáneas se eliminarán (forget ) y qué dos versiones de instantáneas se conservarán (--keep-last 2 ).

Antes de eliminar instantáneas, siempre se recomienda un simulacro para evitar perder instantáneas importantes.

restic -r sftp:[email protected]:/srv/backup forget --keep-last 2 --prune --dry-run

4. Ejecute el siguiente comando para eliminar (forget ) versiones antiguas de instantáneas y conservar las dos últimas (--keep-last 2 ) del repositorio.

restic -r sftp:[email protected]:/srv/backup forget --keep-last 2 --prune

5. Finalmente, ejecute el siguiente comando para enumerar todas las instantáneas existentes.

restic -r sftp:[email protected]:/srv/backup snapshots

Puede ver a continuación que solo quedan las dos últimas versiones de instantáneas.

Restauración de datos en el repositorio

Quizás eliminó accidentalmente datos cruciales del repositorio. Si es así, ¿cómo los recuperas? Afortunadamente, Restic le permite descifrar y restaurar los datos de la copia de seguridad siempre que conozca la ID de la instantánea de la copia de seguridad.

1. Ejecute el restic Comando a continuación para verificar las instantáneas disponibles en el repositorio.

restic -r sftp:[email protected]:/srv/backup snapshots

A continuación se muestra un ejemplo de instantáneas disponibles en el repositorio. Tenga en cuenta la ID de la instantánea de los datos de la copia de seguridad para restaurar.

2. A continuación, ejecute los siguientes comandos para crear un directorio de restauración (/opt/restore ) y restaure su instantánea de destino (6b44ac32 ) a ese directorio de restauración.

# Create a restore directory
mkdir -p /opt/restore
# Restore snapshot data to the /opt/restore directory
restic -r sftp:[email protected]:/srv/backup restore 6b44ac32 --target /opt/restore

3. Finalmente, ejecuta el ls Comando a continuación para verificar los datos restaurados.

ls /opt/restore/var/www/wordpress

Como se muestra a continuación, verá la lista de archivos restaurados a partir de la instantánea (6b44ac32).

Restauración de archivos específicos

Acaba de restaurar datos perdidos, pero ¿qué sucede si solo necesita restaurar un archivo específico? Con Restic, puede apuntar a un archivo específico agregando el --include opción en el restic comando.

1. Ejecute el siguiente comando para crear un directorio para almacenar el archivo específico para restaurar desde una instantánea.

mkdir -p /opt/restore/specific

2. A continuación, ejecute el restic comandos a continuación para restaurar un directorio específico (/var/www/wordpress/wp-content ) y un archivo específico (wp-config.php ) de la instantánea (6b44ac32 ). Cada comando establece el directorio de restauración de destino en el /opt/restore/specific directorio.

# restore specific directory wp-config
restic -r sftp:[email protected]:/srv/backup restore 6b44ac32 --target /opt/restore/specific --include /var/www/wordpress/wp-content

# restore specific file wp-config.php
restic -r sftp:[email protected]:/srv/backup restore 6b44ac32 --target /opt/restore/specific --include /var/www/wordpress/wp-config.php

3. Por último, ejecuta el ls comando a continuación para verificar el archivo restaurado y el directorio en el directorio (/opt/restore/specific ).

ls /opt/restore/specific/var/www/wordpress

Si la restauración funcionó correctamente, vería el directorio (wp-content) y el archivo (wp-config.php) restaurados desde la instantánea (6b44ac32).

Copia de seguridad de datos automáticamente con Restic y Cron

En este punto, ya ha aprendido todo el uso básico de la herramienta de copia de seguridad Restic. Pero dado que la copia de seguridad manual de los datos puede ser una molestia, ¿por qué hacer una copia de seguridad automática de los datos en su sistema Linux? Restic, junto con Cron, puede hacer maravillas, como automatizar el proceso de copia de seguridad de datos.

1. Cree un nuevo archivo (/opt/backup/.secret ) usando su editor preferido e ingrese la contraseña de su repositorio. Esta demostración usa la contraseña ResticRepositoryPassword para el repositorio Restic.

2. A continuación, ejecute el siguiente comando para cambiar el permiso de /opt/backup/.secret archivo a 600 . El código de permiso 600 otorga permiso de lectura y escritura solo al /opt/backup/.secret propietario del archivo.

chmod 600 /opt/backup/.secret

3. Ejecute el crontab Comando a continuación para crear un nuevo trabajo Cron. El -u root La opción indica que el trabajo de Cron se ejecutará como usuario raíz.

crontab -u root -e

4. Seleccione su editor preferido y el archivo de configuración de Cron se abre en ese editor. Pero esta demostración usa el nano editor.

5. Finalmente, complete la configuración de Cron con la siguiente configuración para configurar la copia de seguridad automática y guardar los cambios.

El siguiente script realiza lo siguiente:

  • Ejecute el restic ordena cada 1.AM a directorios de copia de seguridad (/var/www/wordpress/var/www/html ) al servidor SFTP del repositorio (sftp:[email protected]:/srv/backup ).
  • Eliminar instantáneas antiguas automáticamente en 2.AM y conserve las dos últimas versiones de las instantáneas.
  • Especifica (--password-file ) el archivo (/opt/backup/.secret ) que contiene su contraseña para el repositorio de Restic, por lo que no tiene que codificar su contraseña en la configuración de Cron.
# Runs daily backup at 1.AM
0 1 * * * restic --password-file /opt/backup/.secret -r sftp:[email protected]:/srv/backup backup --verbose /var/www/{wordpress,html}

# Runs every 2.AM, and always keeps the last 2 backup snapshots
0 2 * * * restic --password-file /opt/backup/.secret -r sftp:[email protected]:/srv/backup forget --keep-last 2 --prune

Conclusión

En este tutorial, aprendió cómo instalar Restic en Linux y diferentes formas de hacer una copia de seguridad de sus datos, desde directorios hasta archivos específicos con instantáneas. Además de la copia de seguridad de datos, ha descubierto que puede restaurar datos perdidos inesperadamente. La automatización juega un papel importante en la copia de seguridad de sus datos, así que mantenga los trabajos de Cron en ejecución para proteger sus datos.

En este punto, está listo para hacer una copia de seguridad de más datos con Restic. ¿Y por qué no aprovechar su copia de seguridad mediante el uso de etiquetas, políticas de filtrado y servicios de copia de seguridad en la nube?


Linux
  1. Haz música en Linux con Ardor

  2. Edite audio en Linux con Audacity

  3. Gestión de paquetes de Linux con apt

  4. ¿Qué hay de nuevo con rdiff-copia de seguridad?

  5. Comando JQ en Linux con ejemplos

Comando ip de Linux con ejemplos

15 comandos ps de Linux con ejemplos

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

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

Copia de seguridad y restauración de la configuración del sistema de escritorio de Linux con Dconf

ReaR:Respalde y recupere su servidor Linux con confianza