RSNAPSHOT (basado en RSYNC) una utilidad de copia de seguridad del sistema de archivos local/remoto para Linux

RSNAPSHOT (basado en RSYNC) una utilidad de copia de seguridad del sistema de archivos local/remoto para Linux

rsnapshot es un código abierto local / remoto La utilidad de copia de seguridad del sistema de archivos se escribió en Perl lenguaje que ventaja el poder de Rsync y Ssh programa para crear copias de seguridad incrementales programadas de Linux/Desastre sistemas de archivos, mientras que solo ocupa el espacio de una sola copia de seguridad completa más las diferencias y mantiene esas copias de seguridad encendidas local conducir a diferente disco duro, un externo USB Stick, una unidad montada en NFS o simplemente sobre la red a otra máquina a través de Ssh.

Instale la herramienta de copia de seguridad RSNAPSHOT

Este artículo demostrará cómo instalar, configurar y usar rsnapshot para crear incremental cada hora, a diario, semanalmente y mensual copias de seguridad locales, así como copias de seguridad remotas. Para realizar todos los pasos en este artículo, debe ser raíz usuario.

Paso 1: Instalación de la copia de seguridad RSNAPSHOT en Linux

Instalación de rsnapshot usando Beque y APTO puede difiere ligeramente, si está usando sombrero rojo y Debian distribuciones basadas.

En rhel/centos

Primero tendrá que instalar y habilitar el repositorio de terceros llamado Epel. Siga el enlace a continuación para instalar y habilitar bajo su Rhel/Cento sistemas. Fedora Los usuarios no requieren configuraciones de repositorio especial.

  1. Instalar y habilitar el repositorio de Epel en RHEL/Centos 6/5/4

Una vez que obtenga las cosas configuradas, instale rsnapshot desde la línea de comando como se muestra.

# yum instalar rsnapshot
En Debian/Ubuntu/Linux Mint

Por defecto, rsnapshot incluido en UbuntuRepositorios, por lo que puede instalarlo con apt-get comando como se muestra.

# apt-get install rsnapshot

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

Para hacer una copia de seguridad de servidores remotos de Linux, su servidor de copia de seguridad rsnapshot podrá conectarse a través de Ssh sin contraseña. Para lograr esto, necesitará crear un Ssh claves públicas y privadas para autenticar en el rsnapshot servidor. Siga el enlace a continuación para generar una claves públicas y privadas en su rsnapshot servidor de respaldo.

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

Paso 3: Configuración de rsnapshot

Ahora necesitará editar y agregar algunos parámetros a rsnapshot archivo de configuración. Abierto rsnapshot.confusión presentar con VI o nano editor.

# vi /etc /rsnapshot.confusión

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 "/copias de seguridad/". Busque y edite el siguiente parámetro para establecer la ubicación de copia de seguridad.

snapshot_root/data/backup/

También incommentar el "cmd_sshLínea para permitir tomar copias de seguridad remotas Ssh. Para desenchufar la línea retire el "#"En el frente de la siguiente línea para que rsnapshot puede transferir de forma segura sus datos a un servidor de copia de seguridad.

cmd_ssh/usr/bin/ssh

A continuación, debe decidir cuántas copias de seguridad antiguas le gustaría mantener, porque RSNAPSHOT no tenía idea de qué frecuencia 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 hable "mensual"Intervalo para que también pueda tener copias de seguridad a largo plazo en su lugar. Edite esta sección para que se vea similar a la configuración a continuación.

#######################################Los intervalos de respaldo##deben ser únicos y en orden ascendente # # I.mi. por hora, diariamente, semanal, etc. ###################################### 3 Intervalo 6 intervalo diario 7 intervalo semanal 4 intervalo mensual 3

Una cosa más que necesitas editar es "ssh_args" variable. Si ha cambiado el valor predeterminado Puerto ssh (22) A otra cosa, debe especificar el número de puerto de su servidor de copia de seguridad remota.

ssh_args -p 7851

Finalmente, agregue sus directorios de copia de seguridad locales y remotos que desea hacer una copia de seguridad.

Copia de seguridad de directorios locales

Si ha decidido hacer una copia de seguridad de sus directorios localmente a la misma máquina, la entrada de copia de seguridad se vería así. Por ejemplo, estoy tomando una copia de seguridad de mi /Tecmint y /etc directorios.

Backup/ tecMint/ localhost/ backup/ etc/ localhost/
Copia de seguridad de directorios remotos

Si desea hacer una copia de seguridad de los directorios de servidor remoto, debe decirle al RSNAPSHOT dónde está el servidor y qué directorios desea hacer una copia de seguridad de. Aquí estoy tomando una copia de seguridad de mi servidor remoto "/hogar"Directorio bajo"/copias de seguridadDirectorio en el servidor RSNAPSHOT.

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

Leer también:

  1. Cómo hacer una copia de seguridad de los directorios de respaldo con la herramienta RSYNC (Remote Sync)
  2. Cómo transferir archivos/carpetas usando 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, debe crear un archivo de exclusión.

# VI/Data/Backup/TecMint.excluir

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

+ /Boot + /Data + /Tecmint + /Etc + /Home + /Opt + /Root + /usr - /usr /* - /var /cache + /var - /*

El uso de la opción de archivo excluir puede ser muy complicado debido al uso de rsync recursión. Entonces, mi ejemplo anterior puede no ser lo que estás buscando. A continuación, agregue el archivo de exclusión a rsnapshot.confusión archivo.

excluir_file/data/backup/tecMint.excluir

Finalmente, casi ha terminado con la configuración inicial. Salva el "/etc/rsnapshot.confusión"Archivo de configuración antes de avanzar más. 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 intervally 6 intervally 6 intervally 6 intervally 6 7 intervalo semanal 4 intervalo mensual 3 SSH_ARGS -P 25000 LEGOSE 2 LOGLEVEL 4 LOGFILE/VAR/LOG/RSNAPSHOT/EXCLUTE_FILE/DATA/COMPORTACIÓN/TECMINT.Excluir rsync_long_args --delete--numeric-ids --lete-alexcluded LockFile/var/run/rsnapshot.PID Backup/ TecMint/ Localhost/ Backup/ etc/ localhost/ Backup [correo electrónico protegido]:/ home// data/ backup/

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

  1. config_version 1.2 = Versión de archivo de configuración
  2. Snapshot_root = Destino de copia de seguridad para almacenar instantáneas
  3. cmd_cp = Comando de ruta para copiar
  4. cmd_rm = Ruta para eliminar el comando
  5. cmd_rsync = Camino a rsync
  6. cmd_ssh = Camino a SSH
  7. cmd_logger = Interfaz de comando de ruta a shell a syslog
  8. cmd_du = Comando de uso de ruta al disco
  9. intervalo por hora = Cuántas copias de seguridad por hora para mantener.
  10. intervalo diario = Cuántas copias de seguridad diarias para mantener.
  11. intervalo semanal = Cuántas copias de seguridad semanales para mantener.
  12. intervalo mensual = Cuántas copias de seguridad mensuales para mantener.
  13. ssh_args = Argumentos SSH opcionales, como un puerto diferente (-p)
  14. verboso = Explicación por sí mismo
  15. nivel de registro = Explicación por sí mismo
  16. archivo de registro = Ruta al archivo de registro
  17. excluir_file = Ruta al archivo de exclusión (se explicará con más detalle)
  18. rsync_long_args = Largos argumentos para pasar a RSYNC
  19. archivo de bloqueo = Explicación por sí mismo
  20. respaldo = Camino completo a qué se respalda seguido de una ruta relativa de colocación.

Paso 4: Verifique 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 SINTAXE OK

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

A continuación, realice una prueba en una de las instantáneas para asegurarse de que estamos generando resultados correctos. Tomamos el "cada horaParámetro para hacer una prueba de ejecución usando -T (prueba) argumento. Este siguiente comando mostrará una lista detallada de las cosas que hará, sin hacerlo realmente.

# rsnapshot -t por hora
Salida de muestra
Echo 2028>/var/run/rsnapshot.pid mkdir -m 0700 -p/data/backup/mkdir -m 0755 -p/data/backup/hora.0//usr/bin/rsync -a --delete --dids-numérico--relativo --lete-excluido/home \/backup/hora.0/localhost/mkdir -m 0755 -p/backup/hora.0//usr/bin/rsync -a --lete --dids-numeric -relative --lete-excluido/etc \/backup/hora.0/localhost/mkdir -m 0755 -p/data/backup/hora.0//usr/bin/rsync -a --delete --dids-numérico--relativo --lete-excluido \/usr/local/data/backup/hora.0/localhost/touch/data/backup/por hora.0/

Nota: El comando anterior dice rsnapshot para crear un "cada hora" respaldo. En realidad imprime los comandos que realizará cuando lo ejecutemos realmente.

Paso 5: Ejecución de rsnapshot manualmente

Después de verificar sus resultados, puede eliminar el "-TOpción para ejecutar el comando realmente.

# rsnapshot por hora

El comando anterior ejecutará el script de copia de seguridad con toda la configuración que agregamos en el rsnapshot.confusión archivo y crea un "respaldo"Directorio y luego crea la estructura del directorio debajo que organiza nuestros archivos. Después de ejecutar el comando anterior, puede verificar los resultados yendo al directorio de copia de seguridad y enumere 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 Oct 28 09:11 Hora.0

Paso 6: Automatizar el proceso

Para automatizar el proceso, necesitas programar rsnapshot ser ejecutado a ciertos intervalos de Cron. Por defecto, rsnapshot viene con cron Archivo en "/etc/cron.d/rsnapshot", Si no existe, cree uno y agregue las siguientes líneas.

Por defecto se comentan las reglas, por lo que debe eliminar el "#"Desde frente a la sección de programación para habilitar estos valores.

# Este es una muestra de archivo cron para rsnapshot. # Los valores utilizados corresponden a los ejemplos en /etc /rsnapshot.confusión. # Allí también puedes establecer los puntos de copia de seguridad y muchas otras cosas. # # Para activar este archivo cron, debe desenchufar las líneas a continuación. # Siéntete libre de adaptarlo a tus necesidades. 0 */4 * * * root/usr/bin/rsnapshot Hourly 30 3 * * * root/usr/bin/rsnapshot diario 0 3 * * 1 root/usr/bin/rsnapshot semanal 30 2 1 * * root/usr/ bin/rsnapshot mensual

Permítanme explicar exactamente, qué reglas anteriores de Cron hace:

  1. Corre cada 4 horas y crea un cada hora directorio bajo /respaldo directorio.
  2. Funciona diariamente en 3:30 am y crear un a diario directorio bajo /respaldo directorio.
  3. Carreras semanalmente en cada Lunes en 3:00 am y crear un semanalmente directorio bajo /respaldo directorio.
  4. Corre cada mensual en 2:30 am y crear un mensual directorio bajo /respaldo directorio.

Para entender mejor cómo Reglas cron funciona, le sugiero que lea nuestro artículo que describe.

  1. 11 ejemplos de programación de cron

Paso 7: RSNAPSHOT Reports

El rsnapshot proporciona un ingenioso informe pequeño Guión de perl Eso te envía un alerta de correo con todos los detalles sobre lo que ocurrió durante su copia de seguridad de datos. Para configurar este script, debe copiar el script en algún lugar en "/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.por favor

A continuación, agregue "-estadísticasParámetro en tu "rsnapshot.confusión"Archivo en la sección de argumentos largos del RSYNC.

vi /etc /rsnapshot.confusión
rsync_long_args --stats --delete --dids-numeric -delete-excluidos

Ahora edite el Reglas de Crontab que se agregaron anteriormente y llaman al rsnapreport.por favor script para pasar los informes a la dirección de correo electrónico especificada.

# Este es una muestra de archivo cron para rsnapshot. # Los valores utilizados corresponden a los ejemplos en /etc /rsnapshot.confusión. # Allí también puedes establecer los puntos de copia de seguridad y muchas otras cosas. # # Para activar este archivo cron, debe desenchufar las líneas a continuación. # Siéntete libre de adaptarlo a tus necesidades. 0 */4 * * * root/usr/bin/rsnapshot Hourly 2> & 1 | \/usr/local/bin/rsnapreport.PL | Mail -S "Copia de seguridad por hora" [correo electrónico protegido] 30 3 * * * root/usr/bin/rsnapshot diario 2> & 1 | \/usr/local/bin/rsnapreport.PL | Mail -S "Copia de seguridad diaria" [correo electrónico protegido] 0 3 * * 1 root/usr/bin/rsnapshot semanal 2> & 1 | \/usr/local/bin/rsnapreport.PL | Mail -S "Semanalmente copia de seguridad" [correo electrónico protegido] 30 2 1 * * root/usr/bin/rsnapshot mensual 2> & 1 | \/usr/local/bin/rsnapreport.PL | Mail -S "copia de seguridad montalmente" [correo electrónico protegido]

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

Fuente total Archivos de archivos trans Total MB MB Trans Lista Gen Time File Xfer Tiempo --------------------------------------- -------------------------------------------------- ------------------- Localhost/ 185734 11853 2889.45 6179.18 40.661 segundo 0.000 segundos

Enlaces de referencia

  1. Página de inicio de RSNAPSHOT

Eso es todo por ahora, si se produce algún problema durante la instalación, me envíe un comentario. Hasta entonces, estad atentos a Tecmenta Para más artículos interesantes sobre el mundo de código abierto.