Tutoriales

Cómo configurar un servidor de respaldo con rsnapshot en Linux

Esta guía explica qué es Rsnapshot, cómo instalar Rsnapshot en Linux y cómo configurar un servidor de respaldo con Rsnapshot en Linux.

1. Introducción

instantánea es una utilidad de instantáneas del sistema de archivos basada en rsync para sistemas operativos Linux y tipo Unix. Le permite tomar fácilmente instantáneas regulares de computadoras locales y computadoras remotas a través de ssh.

Lo bueno de rsnapshot es que es ampliamente compatible con enlaces duros si es posible, para reducir significativamente el espacio de almacenamiento requerido.

Dado que rsnapshot solo almacena un número fijo de instantáneas, el espacio de almacenamiento utilizado no crece continuamente.

Rnapshot es una aplicación de copia de seguridad de código abierto y gratuita que admite copias de seguridad incrementales. Está completamente dentro. escrito perla, y debería funcionar en la mayoría de los sistemas similares a Unix.

Sin más preámbulos, veamos cómo instalar, configurar y configurar un servidor de respaldo usando Rsnapshot en Linux.

2. Instale Rsnapshot en Linux

Rsnapshot está empaquetado para muchas distribuciones de Linux.

Instale Rsnaphot en Alpine Linux:

$ sudo apk add rsnapshot rsync

Instale rsnapshot es Arch Linux, EndeavorOS y Manjaro Linux:

$ sudo pacman -S rsnapshot rsync

Instale Rsnapshot en Debian, Ubuntu, Linux Mint, Pop_OS!:

$ sudo apt install rsnapshot rsync

Instale Rsnapshot en CentOS, Fedora, RHEL, AlmaLinux, Rocky Linux:

Rsnapshot no está disponible en los repositorios estándar de sistemas operativos empresariales como CentOS, RHEL, AlmaLinux y Rocky Linux. Tienes que activar [EPEL] Repositorio para instalar Rsnapshot.

$ sudo dnf install epel-release

Luego instale rsnapshot con el comando:

$ sudo dnf install rsnapshot rsync

Instale Rsnapshot en openSUSE:

$ sudo zypper install rsnapshot rsync

3. Configure el servidor de respaldo con Rsnapshot en Linux

Utilizo dos sistemas de prueba para este tutorial.

Uno es un servidor de respaldo que se ejecuta en AlmaLinux 8 y otro actúa como un sistema cliente. El cliente se ejecuta en el escritorio Fedora 34.

Los detalles del servidor y el cliente de respaldo se proporcionan a continuación.

Servidor de respaldo:

  • ELLOS : Sistema mínimo AlmaLinux 8 de 64 bits
  • dirección IP : 192.168.122.25/24
  • Directorio raíz de Rsnapshot : / rsnapbackup
  • Directorio para respaldo : / inicio / ostechnix / data /

Cliente:

  • ELLOS : Estación de trabajo Fedora 34
  • dirección IP : 192.168.225.37/24
  • Directorio para respaldo : / inicio / sk / data /

3.1. Configure la autenticación SSH sin contraseña en el servidor de respaldo

Para realizar una copia de seguridad de los archivos en un sistema cliente remoto a través de SSH, debe Configurar la autenticación SSH sin contraseña para sistemas de clientes remotos, para que Backup se conecte automáticamente al sistema del cliente sin una contraseña y realice una copia de seguridad de los datos del cliente.

registrarse como root Usuario y cree un par de claves SSH en nuestro sistema de servidor de respaldo.

# ssh-keygen

No ingrese una contraseñaporque queremos que estos sistemas puedan conectarse entre sí sin la intervención del usuario:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:k/yIpwuk2lqEVxW4O0/6evTjquxCcGffQU0Kgm1ZvPk [email protected]
The key's randomart image is:
+---[RSA 3072]----+
|   o.==. o.      |
|  . =o.....      |
|   ... +.        |
|....+ o...       |
|.ooo.o oS.       |
| o.oo +.E+       |
| .o .*..o .      |
| +....ooo        |
|o..o===+..       |
+----[SHA256]-----+
Configurar la autenticación SSH sin contraseña

A continuación, copie la clave pública SSH en todos los sistemas cliente remotos.

# ssh-copy-id [email protected]

Sustituir sk y 192.168.225.37 En el comando anterior, ingrese el nombre de usuario y la dirección IP de su sistema remoto. Ingrese la contraseña de usuario del sistema cliente para copiar el archivo de clave pública:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

Aquí, 192.168.225.37 es la dirección IP de mi sistema cliente remoto (es decir, Fedora Desktop).

Ahora puede iniciar sesión en el sistema del cliente sin una contraseña a través de SSH.

Repita el comando anterior para copiar la clave pública ssh a todos sus sistemas cliente para configurar la autenticación sin contraseña.

A continuación, debemos configurar el servidor de respaldo.

3.2. Configuración del servidor de respaldo Rsnapshot

Crear Directorio de copia de seguridad raíz para almacenar todas las copias de seguridad de su servidor y sistemas cliente.

Para esta guía estoy usando /rsnapbackup/ como directorio raíz de respaldo. Es el directorio donde almacenaré todas mis copias de seguridad.

Puede definir su propia ubicación de su elección para almacenar las copias de seguridad.

Creemos el directorio raíz de respaldo en nuestro servidor de respaldo con el comando:

# mkdir /rsnapbackup

A continuación, debemos editar y actualizar el directorio raíz de la copia de seguridad, los directorios de los que desea realizar una copia de seguridad y los intervalos de copia de seguridad en el archivo de configuración predeterminado rsnapshot. /etc/rsnapshot.conf.

Antes de editar la configuración, siempre se recomienda hacer una copia de seguridad del archivo de configuración predeterminado en caso de que necesite configurar rsnapshot nuevamente.

# cp /etc/rsnapshot.conf /etc/rsnapshot.conf.bak

Ahora edite el archivo de configuración rsnapshot con el comando:

# nano /etc/rsnapshot.conf

La configuración predeterminada debería funcionar bien. Todo lo que tiene que hacer es definir los directorios de respaldo y los intervalos de respaldo.

Aviso: Tenga en cuenta que usted a. debe especificar barra oblicua al final de los nombres de directorio en /etc/rsnapshot.conf Archivo. Suponga que necesita proporcionar el nombre del directorio como nombre /rsnapbackup/, pero no /rsnapbackup. Igualmente, Debes usar tabulaciones (sin espacios) entre elementos / campos.

Primero, configuremos el directorio raíz de la copia de seguridad, es decir, definamos el directorio en el que se almacenarán las copias de seguridad del sistema de archivos. En nuestro caso, guardo las copias de seguridad en /rsnapbackup/ Directorio.

# All snapshots will be stored under this root directory.
#
snapshot_root   /rsnapbackup/
Definir el directorio raíz de rsnapshot
Definir el directorio raíz de rsnapshot

De nuevo, deberías Usa la tecla TAB entre Snapshot_root elemento y su directorio de respaldo.

Nota: Rsnapshot hace No admite una raíz de instantánea remota a través de SSH.

Desplácese un poco hacia abajo y asegúrese de que las siguientes líneas no estén comentadas (resaltadas en negrita):

[...]
#################################
# EXTERNAL PROGRAM DEPENDENCIES #
#################################

# LINUX USERS: Be sure to uncomment "cmd_cp". This gives you extra features.
# EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility.
#
# See the README file or the man page for more details.
#
cmd_cp /usr/bin/cp

# uncomment this to use the rm program instead of the built-in perl routine.
#
cmd_rm /usr/bin/rm

# rsync must be enabled for anything to work. This is the only command that
# must be enabled.
#
cmd_rsync /usr/bin/rsync

# Uncomment this to enable remote ssh backups over rsync.
#
cmd_ssh /usr/bin/ssh

# Comment this out to disable syslog support.
#
cmd_logger /usr/bin/logger

# Uncomment this to specify the path to "du" for disk usage checks.
# If you have an older version of "du", you may also want to check the
# "du_args" parameter below.
#
cmd_du /usr/bin/du

[...]
Descomentar las dependencias de programas externos
Descomentar las dependencias de programas externos

A continuación, necesitamos definir los intervalos de respaldo:

#########################################
# BACKUP LEVELS / INTERVALS #
# Must be unique and in ascending order #
# e.g. alpha, beta, gamma, etc. #
#########################################

retain alpha 6
retain beta 7
retain gamma 4
#retain delta 3
Definir nivel de respaldo
Definir nivel de respaldo

Aquí, Mantener Alpha 6 significa que cada vez rnapshot alfa ejecutar, crea una nueva instantánea, rota las antiguas y mantiene las últimas seis copias de seguridad en los directorios nombrados alpha.0, alpha.1alpha.5 en el directorio raíz de rsnapshot. La próxima vez que se ejecute el comando, alpha.5 Se eliminará el directorio.

Del mismo modo cuando llamamos rsnapshot beta Cada vez que crea nuevas instantáneas, rota las antiguas y mantiene las últimas 7 copias de seguridad (Delta.0 – Delta.6)

Tenga en cuenta que el alpha, beta, gamma, y delta son solo los nombres para definir los intervalos de respaldo. También puede definir sus propios intervalos.

Por ejemplo, puede reemplazar los niveles de respaldo predeterminados con algunos nombres descriptivos de su elección, como a continuación:

retain  hourly  24
retain  daily   7
retain  weekly  4
retain  monthly 12

Cuando llamamos rnsapshot hourly, se creará una nueva copia de seguridad en <rsnapshot-root>/hourly.0/ Directorio. Si ejecuta este comando cada vez, se crearán nuevos directorios hasta. creado <rsnapshot-root>/hourly.23/.

Esto se aplica a las copias de seguridad diarias, semanales y mensuales.

A continuación, elimine el comentario de la siguiente línea si desea configurar el archivo de registro para rsnapshot:

logfile /var/log/rsnapshot

Si usted tiene El puerto SSH predeterminado cambió, debe comentar esta línea e ingresar el número de puerto válido aquí:

ssh_args -p 2222

Por último, debe definir los directorios de los que desea realizar una copia de seguridad. Busque las siguientes instrucciones en su archivo de configuración rsnapshot y especifique las ubicaciones del directorio de respaldo.

###############################
### BACKUP POINTS / SCRIPTS ###
###############################

# LOCALHOST
backup /home/ostechnix/data/ myserverbackup/

Aquí haré una copia de seguridad del contenido de /home/ostechnix/data/ Directorio y guárdelo en /rsnapbackup/myserverbackup/ Directorio.

Aviso: Tenga en cuenta que no proporcioné la ruta completa (es decir, /rsnapbackup/myserverbackup/) en la configuración anterior. Porque ya mencionamos el directorio raíz de respaldo. Por lo tanto, no es necesario que especifiquemos un directorio raíz de rsnapshot aquí.

Del mismo modo, defina la ubicación de la copia de seguridad de su sistema cliente remoto.

# REMOTEHOST
backup [email protected]:/home/sk/data/ myclientbackup/

Aquí es donde haré una copia de seguridad del contenido de mi sistema cliente remoto /home/sk/data/ Directorio y guárdelo en /rsnapbackup/myclientbackup/ Directorio en mi servidor de respaldo.

Tenga en cuenta también aquí que no proporcioné la ruta completa (/rsnapbackup/myclientbackup/ ) en la configuración anterior. Porque ya hemos definido el directorio raíz de la copia de seguridad.

Definir directorios para respaldar en Rsnapshot
Definir directorios para respaldar en Rsnapshot

Guardar y cerrar /etc/rsnapshot.conf Archivo.

Después de realizar todos los cambios, ejecute el siguiente comando para verificar que el archivo de configuración sea sintácticamente válido.

$ rsnapshot configtest

Si todo está bien, verá el siguiente resultado.

Syntax OK

3.3. Iniciar copias de seguridad

Ejecute el siguiente comando para iniciar manualmente la copia de seguridad con Rsnapshot.

# rsnapshot alpha

La primera copia de seguridad tarda de unos minutos a varias horas, según el tamaño de las copias de seguridad. Las copias de seguridad posteriores serán mucho más rápidas ya que Rsnapshot solo respalda las diferencias.

También puede iniciar otros niveles de copia de seguridad:

# rsnapshot beta
# rsnapshot gamma
# rsnapshot daily

3.4. Verificar y ver copias de seguridad

Comprobemos que las copias de seguridad estén realmente almacenadas en el directorio raíz de la copia de seguridad del servidor de copias de seguridad.

# ls /rsnapbackup/

Verá el siguiente resultado:

alpha.0

Verifique el contenido de alpha.0 Directorio:

# ls /rsnapbackup/alpha.0/

Verá que se crean automáticamente dos directorios, uno para la copia de seguridad local (myserverbackup) y otro para los sistemas remotos (myclientbackup).

myclientbackup  myserverbackup

Para verificar las copias de seguridad del sistema cliente, haga lo siguiente:

# ls /rsnapbackup/alpha.0/myclientbackup/

Verifique las copias de seguridad del sistema del servidor (sistema local):

# ls /rsnapbackup/alpha.0/myserverbackup/
Ver copias de seguridad de Rsnapshot
Ver copias de seguridad de Rsnapshot

Cada vez que ejecuta Rnaspshot, se crean nuevos directorios, como: alpha.0, alpha.1 y así sucesivamente, según el número de niveles de retención que haya configurado.

# ls /rsnapbackup/
alpha.0  alpha.1

Ese alpha.0 El directorio contiene la última copia de seguridad.

3.5. Programar copias de seguridad

No es necesario que ejecute el comando rsnapshot cada vez para realizar copias de seguridad. Solo define un Trabajo cron para automatizar los trabajos de copia de seguridad a intervalos regulares.

Para hacer esto, cree un nuevo archivo de trabajo cron para rsnapshot:

# nano /etc/cron.d/rsnapshot

Agrega las siguientes líneas:

0 */4 * * *     /usr/bin/rsnapshot alpha
50 23 * * *     /usr/bin/rsnapshot beta
00 22 1 * *     /usr/bin/rsnapshot delta

La primera línea indica que habrá seis alfa instantáneas tomadas diariamente (a las 0,4, 8, 12, 16 y 20 horas), beta Instantáneas tomadas a las 11:50 p.m.todas las noches, y delta Las instantáneas se toman a las 10:00 p.m. del primer día de cada mes. Puede ajustar el tiempo a su gusto. Guarde y cierre el archivo.

¡Terminado! A partir de ahora, Rsnapshot realiza automáticamente una copia de seguridad de sus datos en el momento definido.

Consulte las páginas de manual para obtener más información.

# man rsnapshot

4. Restaurar archivos

¡Recuperar archivos es fácil! Si usted tiene sudo o root Para acceder al servidor de respaldo, simplemente puede copiar los archivos del directorio raíz de rsnapshot, es decir /rsnapbackup/.

5. Conclusión

Configurar un servidor de respaldo con Rsnapshot en Linux no es tan difícil. La configuración inicial puede parecer difícil y llevar algún tiempo. Pero una vez que configure el servidor de respaldo Rsnapshot correctamente, funcionará para siempre sin la intervención del usuario.

Recursos:

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba