GNU/Linux >> Tutoriales Linux >  >> AlmaLinux

Cómo configurar el servidor de respaldo usando Rsnapshot en Linux

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

1. Introducción

Rinstantánea es una utilidad de instantáneas del sistema de archivos basada en rsync para sistemas operativos Linux y similares a Unix. Le permite crear fácilmente instantáneas periódicas de máquinas locales y máquinas remotas a través de ssh.

Lo bueno de rsnapshot es que hace un uso extensivo de enlaces duros siempre que sea posible, para reducir en gran medida el espacio en disco necesario.

Dado que rsnapshot solo mantiene un número fijo de instantáneas, la cantidad de espacio en disco utilizado no crecerá continuamente.

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

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

2. Instalar Rsnapshot en Linux

Rsnapshot está empaquetado para muchas distribuciones de Linux.

Instalar Rsnahot en Alpine Linux:

$ sudo apk add rsnapshot rsync

Instalar Rsnapshot es Arch Linux, EndeavourOS y Manjaro Linux:

$ sudo pacman -S rsnapshot rsync

¡Instala Rsnapshot en Debian, Ubuntu, Linux Mint, Pop_OS!:

$ sudo apt install rsnapshot rsync

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

Rsnapshot no está disponible en los repositorios predeterminados de los sistemas operativos empresariales, como CentOS, RHEL, AlmaLinux y Rocky Linux. Debe habilitar [EPEL] repositorio para poder instalar Rsnapshot.

$ sudo dnf install epel-release

Luego, instale Rsnapshot usando el comando:

$ sudo dnf install rsnapshot rsync

Instalar Rsnapshot en openSUSE:

$ sudo zypper install rsnapshot rsync

3. Configure el servidor de respaldo usando Rsnapshot en Linux

A los efectos de esta guía, utilizaré dos sistemas de prueba.

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

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

Servidor de respaldo:

  • SO :AlmaLinux 8 sistema mínimo de 64 bits
  • dirección IP :192.168.122.25/24
  • Directorio raíz Rsnapshot :/rsnapbackup
  • Directorio para respaldar :/inicio/ostechnix/datos/

Cliente:

  • SO :Estación de trabajo Fedora 34
  • dirección IP :192.168.225.37/24
  • Directorio para respaldar :/inicio/sk/datos/

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

Para realizar una copia de seguridad de los archivos de un sistema de cliente remoto a través de SSH, debe configurar la autenticación SSH sin contraseña. para sistemas cliente remotos, por lo que la copia de seguridad se conectará automáticamente al sistema cliente sin contraseña y hará una copia de seguridad de los datos del cliente.

Inicie sesión como root usuario y cree un par de claves SSH en nuestro sistema de servidor de respaldo.

# ssh-keygen

No ingrese ninguna frase de contraseña , porque queremos que estos sistemas puedan conectarse entre sí sin ninguna 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]-----+

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

# ssh-copy-id [email protected]

Reemplazar sk y 192.168.225.37 en el comando anterior con el nombre de usuario y la dirección IP de su sistema remoto. Ingrese su 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 de cliente remoto (es decir, Fedora Desktop).

Ahora puede ingresar al sistema cliente sin ninguna contraseña.

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

A continuación, debemos configurar el servidor de copia de seguridad.

3.2. Configuración del servidor de copia de seguridad Rsnapshot

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

A los efectos de esta guía, utilizo /rsnapbackup/ como directorio raíz de copia de seguridad. Es el directorio donde voy a almacenar todas las copias de seguridad.

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

Vamos a crear 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 respaldo, los directorios que desea respaldar y los intervalos de respaldo en el archivo de configuración predeterminado de 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 reconfigurar rsnapshot nuevamente.

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

Ahora, edite el archivo de configuración de rsnapshot usando el comando:

# nano /etc/rsnapshot.conf

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

Aviso: Tenga en cuenta que debe especificar una barra inclinada final al final de los nombres de directorio en /etc/rsnapshot.conf expediente. Digamos, por ejemplo, que debe especificar el nombre del directorio como /rsnapbackup/ , pero no /rsnapbackup . Además, debe usar tabulaciones (no espacios) entre elementos/campos .

Primero, configuremos el directorio de copia de seguridad raíz, es decir, definamos el directorio donde queremos almacenar las copias de seguridad del sistema de archivos. En nuestro caso, almacenaré las copias de seguridad en /rsnapbackup/ directorio.

# All snapshots will be stored under this root directory.
#
snapshot_root   /rsnapbackup/

Nuevamente, debe usar la tecla TAB entre snapshot_root elemento y su directorio de copia de seguridad.

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

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

[...]
#################################
# 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

[...]

A continuación, debemos definir los intervalos de copia de seguridad:

#########################################
# 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

Aquí, mantener alfa 6 significa que cada vez que rsnapshot alpha ejecutar, creará una nueva instantánea, rotará las antiguas y conservará las seis copias de seguridad más recientes en los directorios denominados alpha.0 , alpha.1 ,... alpha.5 en el directorio raíz de Rsnapshot. Luego, la próxima vez que se ejecute el comando, alpha.5 se eliminará el directorio.

De manera similar, cuando llamamos a rsnapshot beta cada vez, creará una nueva instantánea, rotará las antiguas y conservará las 7 copias de seguridad más recientes (delta.0 - delta.6)

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

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

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

Cuando llamamos a rnsapshot hourly , creará una nueva copia de seguridad en <rsnapshot-root>/hourly.0/ directorio. Cuando ejecute este comando cada vez, seguirá creando nuevos directorios hasta <rsnapshot-root>/hourly.23/ .

Esto es lo mismo para 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 ha cambiado el puerto predeterminado de SSH , debe descomentar esta línea y mencionar el número de puerto válido aquí:

ssh_args -p 2222

Finalmente, debe definir los directorios que desea respaldar. Encuentre las siguientes directivas en su archivo de configuración rsnapshot y configure las ubicaciones del directorio de copia de seguridad.

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

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

Aquí, voy a hacer una copia de seguridad del contenido de /home/ostechnix/data/ y guárdelos en /rsnapbackup/myserverbackup/ directorio.

Aviso: Tenga en cuenta que no especifiqué la ruta completa (es decir, /rsnapbackup/myserverbackup/ ) en la configuración anterior. Porque ya mencionamos el directorio de copia de seguridad raíz anteriormente. Así que no necesitamos especificar aquí el directorio raíz de Rsnapshot.

Del mismo modo, defina la ubicación de copia de seguridad de sus sistemas de clientes remotos.

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

Aquí, voy a hacer una copia de seguridad del contenido de /home/sk/data/ de mi sistema de cliente remoto y guárdelos en /rsnapbackup/myclientbackup/ directorio en mi servidor de copia de seguridad.

Nuevamente, tenga en cuenta que no especifiqué la ruta completa (/rsnapbackup/myclientbackup/ ) en la configuración anterior. Porque ya definimos el directorio raíz de respaldo.

Guarde y cierre /etc/rsnapshot.conf archivo.

Una vez que haya realizado 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 usando Rsnapshot.

# rsnapshot alpha

La primera copia de seguridad tardará entre unos minutos y varias horas, según el tamaño de las copias de seguridad. Las copias de seguridad posteriores serán mucho más rápidas, porque Rsnapshot solo hará una copia de seguridad de las diferencias.

Del mismo modo, puede iniciar otros niveles de copia de seguridad:

# rsnapshot beta
# rsnapshot gamma
# rsnapshot daily

3.4. Verificación y visualización de copias de seguridad

Verifiquemos si las copias de seguridad están realmente almacenadas en el directorio de copia de seguridad raíz en el servidor de copia de seguridad.

# ls /rsnapbackup/

Verá el siguiente resultado:

alpha.0

Comprueba el contenido de alpha.0 directorio:

# ls /rsnapbackup/alpha.0/

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

myclientbackup  myserverbackup

Para comprobar las copias de seguridad del sistema cliente, ejecute:

# ls /rsnapbackup/alpha.0/myclientbackup/

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

# ls /rsnapbackup/alpha.0/myserverbackup/

Cuando ejecuta Rnaspshot cada uno, creará 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

El alpha.0 El directorio contendrá la copia de seguridad más reciente.

3.5. Programar copias de seguridad

No necesita ejecutar el comando rsnapshot para crear copias de seguridad cada vez. Simplemente defina un trabajo cron para automatizar los trabajos de copia de seguridad a intervalos regulares.

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

# nano /etc/cron.d/rsnapshot

Agregue 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 cada día (a las 0, 4, 8, 12, 16 y 20 horas), beta instantáneas tomadas todas las noches a las 23:50 y delta Las instantáneas se tomarán a las 22:00 horas del primer día de cada mes. Puede ajustar el tiempo según su deseo. Guarde y cierre el archivo.

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

Para obtener más detalles, consulte las páginas man.

# man rsnapshot

4. Restaurar archivos

¡Restaurar archivos es fácil! Si tiene sudo o root acceso en el servidor de copia de seguridad, simplemente puede copiar los archivos desde el 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 tomar un poco de tiempo. Pero una vez que configure correctamente el servidor de copia de seguridad de Rsnapshot, funcionará de manera inmediata para siempre, sin la intervención del usuario.

Recursos:

  • sitio web Rsnapshot
  • Rinstantánea del repositorio de GitHub

Lectura relacionada:

  • Cómo hacer una copia de seguridad de todo su sistema Linux usando Rsync
  • Cómo hacer copias de seguridad de archivos y directorios usando Rsync en Linux
  • Cómo hacer copias de seguridad y restaurar archivos usando Deja Dup en Linux
  • 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 instantánea y restauración del sistema para Linux
  • Restic:una aplicación de copia de seguridad rápida, segura y eficiente

AlmaLinux
  1. Cómo crear una copia de seguridad

  2. Cómo configurar el servidor de registro centralizado usando Rsyslog

  3. Cómo instalar y configurar cPanel en un servidor Linux

  4. Cómo configurar SSH sin contraseña en Linux

  5. Cómo configurar el túnel SSH inverso en Linux

Cómo monitorear servidores Linux usando CloudStats

Cómo configurar el servidor de transmisión de medios usando Jellyfin en Linux

Cómo hacer una copia de seguridad del sistema de archivos de Linux usando el comando dump

Cómo realizar una copia de seguridad remota de Linux mediante SSH

Cómo hacer una copia de seguridad de un host Linux remoto usando la utilidad rsync de rsnapshot

Cómo configurar el servidor y el cliente VPN de Linux usando OpenVPN