Rsnapshot (basado en Rsync): una utilidad de copia de seguridad del sistema de archivos local/remoto para Linux

 

rsnapshot. es una utilidad de copia de seguridad del sistema de archivos local. remoto. de código abierto que se escribió en lenguaje Perl. que el poder del programa Rsync. y SSH. para crear copias de seguridad incrementales programadas de los sistemas de archivos Linux. Unix. mientras solo ocupa el espacio de una única copia de seguridad completa más las diferencias y mantener esas copias de seguridad en unidad. local. en diferentes discos duros. un USB  stick, una unidad montada en NFS o simplemente a través de la red a otra máquina a través de SSH.

 Instalar copia de seguridad de rsnapshot en Linux Instalar la herramienta de copia de seguridad Rsnapshot

Este artículo demostrará cómo instalar, configurar y usar rsnapshot. para crear incrementales por horas. diarios. copias de seguridad locales semanales. y mensuales. así como copias de seguridad remotas. Para realizar todos los pasos de este artículo, debe ser un usuario root.

Paso 1: Instalar Rsnapshot Backup en Linux

Instalación de rsnapshot. el uso de Yum. y APT. puede diferir ligeramente si utiliza Red Hat. y Debian. basados distribuciones.

En RHEL/CentOS

Primero deberá instalar y habilitar el repositorio de terceros llamado EPEL. Siga el enlace a continuación para instalar y habilitar en sus sistemas RHEL. CentOS. Los usuarios de Fedora. no requieren ninguna configuración de repositorio especial.

  1. Instale y habilite el repositorio de EPEL en RHEL/CentOS 6/5/4

Una vez que haya configurado todo, instale rsnapshot. desde la línea de comandos como se muestra.

# yum install rsnapshot en Debian/Ubuntu/Linux Mint freestar.config.enabled_slots.push (nombre de ubicación : “tecmint_incontent”, slotId: “tecmint_incontent”);

Por defecto, rsnapshot. se incluye en los repositorios de Ubuntu. por lo que puedes instalarlo usando apt-get. como se muestra.

# apt-get install rsnapshot

Paso 2: Configurar inicio de sesión sin contraseña SSH

Para hacer una copia de seguridad de servidores Linux remotos, su rsnapshot backup server. podrá conectarse a través de SSH. sin contraseña. Para lograr esto, deberá crear una clave pública y privada SSH. para autenticarse en el servidor rsnapshot. Siga el enlace a continuación para generar claves públicas y privadas en su servidor de respaldo rsnapshot.

  1. Cree un inicio de sesión sin contraseña SSH utilizando SSH Keygen

Paso 3: Configurar Rsnapshot

Ahora deberá editar y agregar algunos parámetros al archivo de configuración rsnapshot. Abra el archivo rsnapshot.conf. con el editor vi. o nano.

# vi/etc/rsnapshot.conf

A continuación, cree un directorio de copia de seguridad, donde desea almacenar todas sus copias de seguridad. En mi caso, la ubicación de mi directorio de respaldo es “/data/backup/”. Busque y edite el siguiente parámetro para establecer la ubicación de la copia de seguridad.

snapshot_root/data/backup/

También descomente la línea “ cmd_ssh. para permitir realizar copias de seguridad remotas en SSH. Para descomentar la línea, elimine el “ #. al frente de la siguiente línea para que rsnapshot. pueda transferir sus datos de forma segura a un servidor de respaldo.

cmd_ssh/usr/bin/ssh

A continuación, debe decidir cuántas copias de seguridad antiguas le gustaría conservar, porque rsnapshot no tenía idea de la frecuencia con la que desea tomar instantáneas. Debe especificar cuántos datos guardar, agregar intervalos para mantener y cuántos de cada uno.

Bueno, la configuración predeterminada es lo suficientemente buena, pero aún así me gustaría que habilitara “ mensuales. ”intervalo para que también pueda tener copias de seguridad a más largo plazo en su lugar. Edite esta sección para que se vea similar a la siguiente configuración.

####################################### # INTERVALOS DE COPIA DE SEGURIDAD # # Debe ser único y en orden ascendente # # es decir, cada hora, diario, semanal, etc. # ################################################################################################################################################################################################################################################################################## ########## intervalo por hora 6 intervalo diario 7 intervalo semanal 4 intervalo mensual 3

Una cosa más que necesita editar es la variable “ ssh_args. . Si ha cambiado el puerto SSH. ( 22. predeterminado por otro, debe especificar ese número de puerto de su servidor de respaldo remoto.

ssh_args-p 7851

Finalmente, agregue sus directorios de respaldo locales y remotos de los que desea respaldar.

Respaldo de directorios locales

Si ha decidido respaldar sus directorios localmente en la misma máquina, la entrada de respaldo se vería así esto. Por ejemplo, estoy haciendo una copia de seguridad de mis directorios /tecmint. y /etc.

backup/tecmint/localhost/backup/etc/localhost/Backup Remote Directories

Si desea hacer una copia de seguridad de los directorios de un servidor remoto, entonces necesita decirle al rsnapshot dónde está el servidor y qué directorios desea respaldar. Aquí estoy haciendo una copia de seguridad del directorio “/home. de mi servidor remoto en el directorio “/data/backup. en el servidor rsnapshot.

copia de seguridad [correo electrónico protegido] :/home//data/backup/

Lea también:

  1. Cómo hacer una copia de seguridad/sincronizar directorios usando la herramienta Rsync (sincronización remota)
  2. Cómo transferir archivos/Carpetas que usan el comando SCP

Excluir archivos y directorios

Aquí, voy a excluir todo, y luego solo definiré específicamente lo que quiero respaldar. Para hacer esto, necesita crear un archivo de exclusión.

# vi/data/backup/tecmint.exclude

Primero obtenga la lista de directorios que desea respaldar y agregue (-*. para excluir todo lo demás. Esto solo hará una copia de seguridad de lo que enumeró en el archivo. Mi archivo de exclusión se parece al siguiente.

+/boot +/data +/tecmint +/etc +/home +/opt +/root +/usr-/usr/*-/var/cache +/var-/*

El uso de la opción de exclusión de archivo puede ser muy complicado debido al uso de la recursividad rsync. Por lo tanto, mi ejemplo anterior puede no ser lo que está buscando. A continuación, agregue el archivo de exclusión al archivo rsnapshot.conf.

exclude_file/data/backup/tecmint.exclude

Finalmente, casi ha terminado con la configuración inicial. Guarde el archivo de configuración “/etc/rsnapshot.conf. antes de continuar. Hay muchas opciones para explicar, pero aquí está mi archivo de configuración de muestra.

config_version 1.2 snapshot_root/data/backup/cmd_cp/bin/cp cmd_rm/bin/rm cmd_rsync/usr/bin/rsync cmd_ssh/usr/bin/ssh cmd_logger/usr/bin/logger cmd_du/usr/bin/du intervalo por hora 6 intervalo diario 7 intervalo semanal 4 intervalo mensual 3 ssh_args-p 25000 detallado 2 loglevel 4 logfile/var/log/rsnapshot/exclude_file/data/backup/tecmint .excluir rsync_long_args–delete–numeric-ids–delete-excluido lockfile/var/run/rsnapshot.pid backup/tecmint/localhost/backup/etc/localhost/backup [correo electrónico protegido]:/home//data/backup/

Todas las opciones y explicaciones de argumentos anteriores son las siguientes:

  1. config_version 1.2. = Versión del archivo de configuración
  2. snapshot_root. = Destino de la copia de seguridad para almacenar instantáneas
  3. cmd_cp. = Ruta para copiar el comando
  4. cmd_rm. = Ruta para eliminar el comando
  5. cmd_rsync. = Ruta a rsync
  6. cmd_ssh. = Ruta a SSH
  7. cmd_logger. = Ruta a la interfaz de comandos de shell para syslog
  8. cmd_du. = Ruta al comando de uso del disco
  9. intervalo por hora. = Cuántas copias de seguridad por hora conservar.
  10. intervalo diario. = cuántas copias de seguridad diarias conservar.
  11. intervalo semanal. = cuántas copias de seguridad semanales conservar.
  12. intervalo mensual. = Cuántas copias de seguridad mensuales conservar.
  13. ssh_args. = Argumentos SSH opcionales, como un puerto diferente (-p)
  14. verbose. = Se explica por sí mismo
  15. loglevel </stro ng> = Se explica por sí mismo
  16. logfile. = Ruta al archivo de registro
  17. exclude_file. = Ruta al archivo de exclusión (se explicará con más detalle)
  18. rsync_long_args. = Argumentos largos para pasar a rsync
  19. lockfile. = Se explica por sí mismo
  20. backup. = Ruta completa a lo que se respaldará seguida de la ruta relativa de ubicación.

Paso 4: Verificar la configuración de Rsnapshot

Una vez que haya terminado con toda su configuración, es hora de verificar que todo funcione como se esperaba. Ejecute el siguiente comando para verificar que su configuración tenga la sintaxis correcta.

# rsnapshot configtest Sintaxis correcta

Si todo está configurado correctamente, recibirá un mensaje “ Sintaxis correcta. . Si recibe algún mensaje de error, significa que debe corregir esos errores antes de ejecutar rsnapshot.

A continuación, realice una ejecución de prueba en una de las instantáneas para asegurarse de que estamos generando resultados correctos. Usamos el parámetro “ por hora. para hacer una ejecución de prueba usando el argumento -t. ( prueba. . El siguiente comando mostrará una lista detallada de las cosas que hará, sin hacerlas realmente.

# rsnapshot-t salida de muestra por hora echo 2028>/var/run/rsnapshot.pid mkdir-m 0700-p/data/backup/mkdir-m 0755-p/data/backup/hourly.0//usr/bin/rsync-a–delete–numeric-ids–relative–delete-excluded/home /backup/hourly. 0/localhost/mkdir-m 0755-p/backup/hourly.0//usr/bin/rsync-a–delete–numeric-ids–relative–eliminar-excluido/etc /backup/hourly.0/localhost/mkdir-m 0755-p/data/backup/hourly.0//usr/bin/rsync-a–delete–numeric-ids–relative–delete-excluido /usr/local/data/backup/hourly.0/localhost/touch/data/backup/hourly.0/

Nota. El comando anterior indica rsnapshot. para crear una copia de seguridad “ por hora. . En realidad, imprime los comandos que ejecutará cuando lo ejecutemos realmente.

Paso 5: Ejecutar Rsnapshot manualmente

Después de verificar sus resultados, puede eliminar el “-t. ”para ejecutar el comando realmente.

# rsnapshot hourly

El comando anterior ejecutará el script de respaldo con toda la configuración que agregamos en rsnapshot.conf. archivo y crea un directorio “ copia de seguridad. y luego crea la estructura de directorio debajo de él que organiza nuestros archivos. Después de ejecutar el comando anterior, puede verificar los resultados yendo al directorio de respaldo y listar la estructura del directorio usando el comando ls-l como se muestra.

# cd/data/backup # ls-l total 4 drwxr-xr-x 3 root root 4096 28 de octubre 09:11 por hora.0

Paso 6: Automatización del proceso

Para automatizar el proceso . necesita programar rsnapshot para ejecutarse a ciertos intervalos desde Cron. De forma predeterminada, rsnapshot. viene con un archivo cron. en “/etc/cron.d/rsnapshot. , si no existe, cree uno y agréguele las siguientes líneas.

De forma predeterminada, las reglas están comentadas, por lo que debe eliminar el “ #. del frente de la sección de programación para habilitar estos valores.

# Este es un archivo cron de muestra para rsnapshot. # Los valores usados ​​corresponden a los ejemplos en/etc/rsnapshot.conf. # Allí también puede configurar los puntos de respaldo y muchas otras cosas. # # Para activar este archivo cron, debe descomentar las líneas siguientes. # No dude en adaptarlo a sus necesidades. 0 */4 * * * root/usr/bin/rsnapshot cada hora 30 3 * * * root/usr/bin/rsnapshot diariamente 0 3 * * 1 root/usr/bin/rsnapshot semanal 30 2 1 * * root/usr/bin/rsnapshot mensual

Permítanme explicar exactamente lo que hacen las reglas cron anteriores:

  1. Se ejecuta cada 4 horas. y crea un horario. en el directorio /backup.
  2. Se ejecuta todos los días a las 3:30 a. m.. y crea un directorio diario. en /directorio de copia de seguridad.
  3. Se ejecuta semanalmente. todos los lunes. a las 3:00 a. m.. y crea un semanalmente. en el directorio /backup.
  4. Se ejecuta cada mensualmente. a las 2:30 a. m.. y crea un directorio mensual. en el directorio /backup.

Para comprender mejor cómo funcionan las reglas cron. le sugiero rea d nuestro artículo que describe.

  1. 11 Ejemplos de programación Cron

Paso 7: Informes de Rsnapshot

El rsnapshot. proporciona un pequeño script Perl. de informes ingenioso que le envía una alerta por correo electrónico. con todos los detalles de lo que ocurrió durante la copia de seguridad de sus datos. Para configurar este script, debe copiar el script en algún lugar bajo “/usr/local/bin. y hacerlo ejecutable.

# cp/usr/share/doc/rsnapshot-1.3. 1/utils/rsnapreport.pl/usr/local/bin # chmod + x/usr/local/bin/rsnapreport.pl

A continuación, agregue el parámetro “ –stats. en su “ rsnapshot.conf. ”a la sección de argumentos largos de rsync.

vi/etc/rsnapshot.conf rsync_long_args–stats–delete–numeric-ids–delete-excluded

Ahora edite las reglas crontab. que se agregaron anteriormente y llaman al script rsnapreport.pl. para pasar los informes a la dirección de correo electrónico especificada.

# Este es un archivo cron de muestra para rsnapshot . # Los valores usados ​​corresponden a los ejemplos en/etc/rsnapshot.conf. # Allí también puede configurar los puntos de respaldo y muchas otras cosas. # # Para activar este archivo cron, debe descomentar las líneas siguientes. # No dude en adaptarlo a sus necesidades. 0 */4 * * * root/usr/bin/rsnapshot cada hora 2> & 1 | /usr/local/bin/rsnapreport.pl | mail-s “Copia de seguridad por hora” [email protected] 30 3 * * * root/usr/bin/rsnapshot daily 2> & 1 | /usr/local/bin/rsnapreport.pl | mail-s “Copia de seguridad diaria” [email protected] 0 3 * * 1 root/usr/bin/rsnapshot semanal 2> & 1 | /usr/local/bin/rsnapreport.pl | mail-s “Copia de seguridad semanal” [email protected] 30 2 1 * * root/usr/bin/rsnapshot mensual 2> & 1 | /usr/local/bin/rsnapreport.pl | mail-s “Montly Backup” [email protected]

Una vez que haya agregado las entradas anteriores correctamente, recibirá un informe en su dirección de correo electrónico similar al siguiente.

FUENTE TOTAL ARCHIVOS ARCHIVOS TRANS TOTAL MB MB TRANS LISTA GEN TIME ARCHIVO XFER TIME——————————————————————————————————–localhost/185734 11853 2889.45 6179.18 40.661 segundo 0.000 segundos

Enlaces de referencia

  1. rsnapshot página de inicio

Eso es Por ahora, si ocurre algún problema durante la instalación, envíeme un comentario. Hasta entonces, permanezca atento a TecMint. para obtener más artículos interesantes sobre el mundo del código abierto.