27Jun

Cómo usar rsync para hacer una copia de seguridad de tus datos en Linux

click fraud protection

bandera

rsync es un protocolo creado para sistemas tipo Unix que ofrece una versatilidad increíble para realizar copias de seguridad y sincronizar datos. Se puede usar localmente para realizar copias de seguridad de archivos en diferentes directorios o se puede configurar para que se sincronice 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 tutorial hablaremos sobre la configuración 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".

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

rsync4
El comando en Debian / Ubuntu.

Uso de 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 maneras diferentes en que podemos abordar esto, dependiendo del 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:

instagram viewer

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

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

Hay muchos conmutadores diferentes que puede usar para rsync para personalizarlo 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( recurse en directorios), enlaces( copie enlaces simbólicos), permanentes( preservar permisos), veces( mantenga los tiempos de modificación), grupo( preservar grupo), propietario( preservar propietario), preservar archivos de dispositivo y preservar archivos especiales.
2. -v = verboso. La razón por la que creo que verbose es importante es para que pueda ver exactamente qué rsync está realizando. Piense en esto: ¿qué pasa si su disco duro funciona mal y comienza a eliminar archivos sin su conocimiento, luego ejecuta su secuencia de comandos rsync e impulsa esos cambios a sus copias de seguridad, eliminando así todas las instancias de un archivo que no deseaba obtener?deshacerse de?
3. -delete = Esto le dice a rsync que elimine cualquier archivo que esté en el Directorio2 que no esté en el Directorio1.Si elige usar esta opción, también recomiendo usar las opciones detalladas, por las razones mencionadas anteriormente.

Utilizando la secuencia de comandos anterior, esta es la salida generada mediante el uso de rsync para hacer una copia de seguridad de Directorio1 a Directorio2.Tenga en cuenta que sin el interruptor detallado, no recibiría tal información detallada.

rsync2

La captura de pantalla anterior nos dice que File1.txt y File2.jpg fueron detectados como nuevos o modificados de las copias existentes en Directory2, por lo que fueron respaldados. Consejo novato: Observe las barras al final de los directorios en mi comando rsync; ésas son necesarias, asegúrese de recordarlas.

Repasaremos algunos otros interruptores útiles al final de este tutorial, pero recuerde que para ver una lista completa puede escribir "man rsync" y ver una lista completa de los modificadores que se utilizarán.

Eso lo cubre en lo que respecta 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.

Uso de rsync para copias de seguridad externas

rsync puede configurarse de diferentes maneras para respaldos externos, pero repasaremos el método más práctico( también el más fácil y más seguro) de tuning rsync a través de SSH.La mayoría de los servidores e incluso muchos clientes ya tienen SSH, y se puede usar para sus copias de seguridad rsync. Le mostraremos el proceso para hacer que una máquina Linux haga una copia de respaldo a otra en una red local. El proceso sería exactamente el mismo si un servidor estuviera en Internet en alguna parte, solo tenga en cuenta que el puerto 22( o cualquier puerto en el que tenga configurado SSH), tendría que reenviarse en cualquier equipo de red del 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

Aparte de instalar SSH y rsync en el servidor, todo lo que necesita hacer es configurar los repositorios en el servidor donde desea que se respalden los archivosarriba, y asegúrese 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 SSH escucha( el valor predeterminado es 22).

Vamos a ejecutar el mismo comando que usamos para usar rsync en una computadora local, pero incluimos las adiciones necesarias para tunelizar 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 utilizando los mismos switches que el anterior( -av -delete) ejecutaremos lo siguiente:

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

IfSi tiene SSH escuchando en un puerto que no sea el 22, necesitará 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/

rsync3

Como puede ver en la captura de pantalla anterior, la salida que se proporciona al hacer una copia de seguridad en la red es prácticamente la misma que cuando se realiza una copia de seguridad local, lo único que cambia es el comando que utiliza. Tenga en cuenta también que solicitó una contraseña. Esto es para autenticarse con SSH.Puede configurar claves RSA para omitir este proceso, lo que también simplificará la automatización de rsync.

Automatización de copias de seguridad de rsync

Cron se puede utilizar en Linux para automatizar la ejecución de comandos, como rsync. Usando Cron, podemos hacer que nuestro sistema Linux ejecute copias de seguridad nocturnas, o con la frecuencia que desee que se ejecuten.

Para editar el archivo de tabla cron para el usuario con el que está conectado, 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 utiliza 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 cada noche a las 10 PM:

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

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

Después de que termine de configurar Cron, presione escape, y luego escriba ": wq"( sin las comillas) y presione enter. Esto guardará sus cambios en vi.

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

Otras funciones útiles

Otra cosa útil que puede hacer es colocar sus copias de seguridad en un archivo zip. Deberá especificar dónde desea que se coloque el archivo comprimido y luego sincronizar ese directorio con su directorio de respaldo. Por ejemplo:

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

rsync5

El comando anterior toma los archivos de Directory1, los coloca en /ZippedFiles/ archive.zip y luego sincroniza ese directorio con Directory2.Inicialmente, puede pensar que este método resultaría ineficaz para las copias de seguridad grandes, ya que el archivo zip cambiará cada vez que se realice la más mínima alteración en un archivo. Sin embargo, rsync solo transfiere los datos modificados, por lo que si su archivo comprimido es de 10 GB y luego agrega un archivo de texto a Directory1, rsync sabrá que eso es todo lo que agregó( aunque está en un zip) y transferirá solo algunos kilobytesde datos modificados.

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

Independientemente de las opciones y características que elija, rsync resulta 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.