Cómo usar rsync para respaldar sus datos en Linux

Tabla de contenido:

Video: Cómo usar rsync para respaldar sus datos en Linux

Video: Cómo usar rsync para respaldar sus datos en Linux
Video: Anviz Capacitación Pública Curso 3.2: Gestión de Usuarios en CrossChex Cloud 2024, Marcha
Cómo usar rsync para respaldar sus datos en Linux
Cómo usar rsync para respaldar sus datos en Linux
Anonim
rsync es un protocolo creado para sistemas similares a Unix que proporciona una versatilidad increíble para realizar copias de seguridad y sincronizar datos. Puede usarse localmente para hacer copias de seguridad de archivos en directorios diferentes o puede configurarse para sincronizarse a través de Internet con otros hosts.
rsync es un protocolo creado para sistemas similares a Unix que proporciona una versatilidad increíble para realizar copias de seguridad y sincronizar datos. Puede usarse localmente para hacer copias de seguridad de archivos en directorios diferentes o puede configurarse para sincronizarse a través de Internet con otros hosts.

Se puede usar en sistemas Windows, pero solo está disponible a través de varios puertos (como Cygwin), por lo que en este manual hablaremos de configurarlo en Linux. Primero, necesitamos instalar / actualizar el cliente rsync. En las distribuciones de Red Hat, el comando es "yum install rsync" y en Debian es "sudo apt-get install rsync".

 El comando en Red Hat / CentOS, después de iniciar sesión como root (tenga en cuenta que algunas distribuciones recientes de Red Hat son compatibles con el método sudo).
El comando en Red Hat / CentOS, después de iniciar sesión como root (tenga en cuenta que algunas distribuciones recientes de Red Hat son compatibles con el método sudo).
 El comando en Debian / Ubuntu.
El comando en Debian / Ubuntu.

Usando rsync para copias de seguridad locales

En la primera parte de este tutorial, realizaremos una copia de seguridad de los archivos de Directory1 a Directory2. Ambos directorios están en el mismo disco duro, pero esto funcionaría exactamente igual si los directorios existieran en dos unidades diferentes. Hay varias formas diferentes de abordar esto, según el tipo de copias de seguridad que desee configurar. Para la mayoría de los propósitos, la siguiente línea de código será suficiente:

$ rsync -av --delete /Directory1/ /Directory2/

El código anterior sincronizará el contenido de Directory1 con Directory2, y no dejará diferencias entre los dos. Si rsync encuentra que Directory2 tiene un archivo que Directory1 no tiene, lo eliminará. Si rsync encuentra un archivo que se ha cambiado, creado o eliminado en Directory1, reflejará esos mismos cambios en Directory2.

Hay muchos conmutadores diferentes que puede utilizar para que rsync lo personalice según sus necesidades específicas. Esto es lo que el código mencionado le dice a rsync que haga con las copias de seguridad:

1. -a = recursivo (recursión en directorios), enlaces (copiar enlaces simbólicos como enlaces simbólicos), permisos (permisos permanentes), tiempos (tiempos de modificación preservados), grupo (grupo preservar), propietario (propietario preservar), archivos preservados del dispositivo y preservar archivos especiales. 2. -v = verbosa. La razón por la que creo que verbose es importante es para que pueda ver exactamente lo que rsync está respaldando. Piense en esto: ¿Qué pasa si su unidad de disco duro se deteriora y comienza a eliminar archivos sin su conocimiento? Entonces, ejecuta su script rsync e impulsa esos cambios a sus copias de seguridad, eliminando así todas las instancias de un archivo que no desea obtener. deshacerse de? 3. –delete = Esto le dice a rsync que elimine cualquier archivo que esté en Directory2 que no esté en Directory1. Si elige usar esta opción, le recomiendo que use también las opciones detalladas, por las razones mencionadas anteriormente.

Usando el script anterior, aquí está la salida generada usando rsync para hacer una copia de seguridad de Directory1 a Directory2. Tenga en cuenta que sin el cambio detallado, no recibirá tal información detallada.

La captura de pantalla anterior nos dice que File1.txt y File2.jpg se detectaron como nuevos o modificados de las copias existentes en Directory2, por lo que fueron respaldados. Noob tip: observe las barras diagonales al final de los directorios en mi comando rsync: son necesarios, asegúrese de recordarlos.
La captura de pantalla anterior nos dice que File1.txt y File2.jpg se detectaron como nuevos o modificados de las copias existentes en Directory2, por lo que fueron respaldados. Noob tip: observe las barras diagonales al final de los directorios en mi comando rsync: son necesarios, asegúrese de recordarlos.

Revisaremos algunos conmutadores más útiles hacia el final de este tutorial, pero solo recuerde que para ver una lista completa puede escribir "man rsync" y ver una lista completa de los conmutadores a usar.

Eso lo cubre todo lo que se refiere a las copias de seguridad locales. Como puede ver, rsync es muy fácil de usar. Se vuelve un poco más complejo cuando se usa para sincronizar datos con un host externo a través de Internet, pero le mostraremos una manera simple, rápida y segura de hacerlo.

Usando rsync para copias de seguridad externas

rsync puede configurarse de varias formas diferentes para copias de seguridad externas, pero analizaremos el método más práctico (también el más sencillo y seguro) de tunear rsync a través de SSH. La mayoría de los servidores e incluso muchos clientes ya tienen SSH, y puede usarse para sus copias de seguridad rsync. Le mostraremos el proceso para hacer que una máquina Linux realice copias de seguridad en otra en una red local. El proceso sería exactamente el mismo si un host estuviera en Internet en algún lugar, solo tenga en cuenta que el puerto 22 (o cualquier puerto con el que esté configurado SSH), tendría que reenviarse en cualquier equipo de red en el lado del servidor.

En el servidor (la computadora que recibirá las copias de seguridad), asegúrese de que SSH y rsync estén instalados.

# yum -y install ssh rsync

# sudo apt-get install ssh rsync

Además de instalar SSH y rsync en el servidor, todo lo que debe hacerse es configurar los repositorios en el servidor donde desea hacer una copia de seguridad de los archivos y asegurarse de que SSH esté bloqueado. Asegúrese de que el usuario que planea usar tenga una contraseña compleja, y también puede ser una buena idea cambiar el puerto que escucha SSH (el valor predeterminado es 22).

Ejecutaremos el mismo comando que usamos para usar rsync en una computadora local, pero incluiremos las adiciones necesarias para hacer un túnel de rsync a través de SSH a un servidor en mi red local. Para el usuario "geek" que se conecta a "192.168.235.137" y usa los mismos interruptores que el anterior (-av –delete) ejecutaremos lo siguiente:

$ rsync -av –delete -e ssh /Directory1/ [email protected]:/Directory2/

Si tiene SSH escuchando en algún puerto que no sea 22, deberá especificar el número de puerto, como en este ejemplo donde uso el puerto 12345:

$ rsync -av –delete -e 'ssh -p 12345' /Directory1/ [email protected]:/Directory2/

Como puede ver en la captura de pantalla anterior, el resultado dado cuando se realiza una copia de seguridad a través de la red es más o menos igual que cuando se realiza una copia de seguridad local, lo único que cambia es el comando que usa. Tenga en cuenta también que solicitó una contraseña.Esto es para autenticar con SSH. Puede configurar claves RSA para omitir este proceso, lo que también simplificará la automatización de rsync.
Como puede ver en la captura de pantalla anterior, el resultado dado cuando se realiza una copia de seguridad a través de la red es más o menos igual que cuando se realiza una copia de seguridad local, lo único que cambia es el comando que usa. Tenga en cuenta también que solicitó una contraseña.Esto es para autenticar con SSH. Puede configurar claves RSA para omitir este proceso, lo que también simplificará la automatización de rsync.

Automatizar las copias de seguridad rsync

Cron se puede usar en Linux para automatizar la ejecución de comandos, como rsync. Usando Cron, podemos hacer que nuestro sistema Linux realice copias de seguridad nocturnas, o sin embargo, a menudo le gustaría que se ejecuten.

Para editar el archivo de tabla cron para el usuario con el que ha iniciado sesión, ejecute:

$ crontab -e

Deberá estar familiarizado con vi para editar este archivo. Escriba "I" para insertar, y luego comience a editar el archivo de tabla cron.

Cron usa la siguiente sintaxis: minuto de la hora, hora del día, día del mes, mes del año, día de la semana, comando.

Puede ser un poco confuso al principio, así que déjame darte un ejemplo. El siguiente comando ejecutará el comando rsync todas las noches a las 10 PM:

0 22 * * * rsync -av --delete /Directory1/ /Directory2/

El primer "0" especifica el minuto de la hora, y "22" especifica las 10 PM. Como queremos que este comando se ejecute a diario, dejaremos el resto de los campos con asteriscos y luego pegaremos el comando rsync.

Una vez que haya terminado de configurar Cron, presione escape, y luego escriba ": wq" (sin las comillas) y presione enter. Esto guardará tus cambios en vi.

Cron puede obtener mucho más en profundidad que esto, pero seguir adelante estaría fuera del alcance de este tutorial. La mayoría de las personas solo querrán una simple copia de seguridad semanal o diaria, y lo que hemos demostrado puede lograrlo fácilmente. Para obtener más información sobre Cron, consulte las páginas del manual.

Otras características útiles

Otra cosa útil que puedes hacer es poner tus copias de seguridad en un archivo zip. Deberá especificar dónde desea que se coloque el archivo zip, y luego rsync ese directorio a su directorio de copia de seguridad. Por ejemplo:

$ zip /ZippedFiles/archive.zip /Directory1/ && rsync -av --delete /ZippedFiles/ /Directory2/

El comando anterior toma los archivos de Directory1, los coloca en /ZippedFiles/archive.zip y luego rsyncs ese directorio a Directory2. Inicialmente, puede pensar que este método resultaría ineficiente para las copias de seguridad grandes, considerando que el archivo zip cambiará cada vez que se realice una pequeña alteración en un archivo. Sin embargo, rsync solo transfiere los datos modificados, por lo tanto, si su archivo zip es de 10 GB y luego agrega un archivo de texto a Directory1, rsync sabrá que es todo lo que agregó (aunque esté en un zip) y transferirá solo unos pocos kilobytes. de datos modificados.
El comando anterior toma los archivos de Directory1, los coloca en /ZippedFiles/archive.zip y luego rsyncs ese directorio a Directory2. Inicialmente, puede pensar que este método resultaría ineficiente para las copias de seguridad grandes, considerando que el archivo zip cambiará cada vez que se realice una pequeña alteración en un archivo. Sin embargo, rsync solo transfiere los datos modificados, por lo tanto, si su archivo zip es de 10 GB y luego agrega un archivo de texto a Directory1, rsync sabrá que es todo lo que agregó (aunque esté en un zip) y transferirá solo unos pocos kilobytes. de datos modificados.

Hay un par de formas diferentes en que puede cifrar sus copias de seguridad rsync. El método más sencillo es instalar el cifrado en el disco duro (el que está respaldando en sus archivos). Otra forma es cifrar sus archivos antes de enviarlos a un servidor remoto (u otro disco duro, sea cual sea su copia de seguridad). Cubriremos estos métodos en artículos posteriores.

Independientemente de las opciones y características que elija, rsync demuestra ser una de las herramientas de copia de seguridad más eficientes y versátiles hasta la fecha, e incluso una simple secuencia de comandos rsync puede evitar que pierda sus datos.

Recomendado: