Es una utilidad poderosa que puede servir en muchas situaciones. En este artículo, mostraré cómo comenzar con RSYNC con una demostración. La manifestación se realizará en Ubuntu 18.04.
Rsync
RSYNC representa el término sincronización remota. A pesar del nombre, puede manejar la sincronización de archivos de forma remota y local. El término RSYNC también se usa para referirse al protocolo RSYNC que RSYNC usa para sincronizar. En este artículo, RSYNC siempre denotará la herramienta, no el protocolo.
Debido a su gran popularidad, RSYNC está disponible en casi todos los sistemas de Linux y Unix. Hay una buena posibilidad de que viene preinstalado. Si no, investigue un poco sobre cómo instalar RSYNC en su sistema.
Aquí hay una lista de características que ofrece RSYNC.
Uso de RSYNC
Antes de saltar a RSYNC, necesitamos algunos archivos ficticios para trabajar con. Creemos primero un directorio ficticio.
$ mkdir -v primario
Una vez creado, es hora de crear un puñado de archivos ficticios. Para crear un archivo, usaré el comando touch. Obtenga más información sobre el comando touch.
$ Touch Dummy 1 ... 20
Voila! Ahora estamos listos para usar RSYNC para realizar acciones usando estos archivos ficticios.
Estructura de comando RSYNC
RSYNC utiliza la siguiente estructura de comando.
$ rsync
Sincronizar directorios locales
Ahora, es hora de usar RSYNC para sincronizar archivos en múltiples destinos. En este ejemplo, sincronizaremos el contenido de Dir_Primary a Dir_target.
$ mkdir -v objetivo
Dígale a RSYNC que sincronice el contenido de ambos directorios.
$ rsync -v -r primario/ objetivo
Aquí, hemos usado dos argumentos diferentes.
-V: Le dice a RSYNC que se encuentre en modo textual
-riñonal: Recursivo, requerido para la sincronización del directorio.
En el siguiente ejemplo, usaremos una bandera diferente.
$ rsync -v -a primario/ objetivo
-a: Una bandera de combinación que significa "Archivo".
Usando este indicador, RSYNC sincronizará los contenidos de manera recursiva mientras preservará cualquier archivo simbólico, especial/de dispositivos, tiempos de modificación, permisos de archivos, grupo, propietario, etc. Se usa más comúnmente que la bandera "-r". Para el archivo, este es un método más recomendado.
¿Notaste que en todos los comandos que hemos ejecutado hasta ahora, en el caso de la fuente, siempre conservamos el "/" después del nombre del directorio?? Esto es para decirle a RSYNC que la fuente es todo el contenido del directorio de origen. Si no se usa el "/" al final del directorio de origen, RSYNC simplemente creará una copia del directorio de origen en lugar de su contenido.
Vamos a verlo con un ejemplo.
$ RSYNC -V -A objetivo principal
Verifique el resultado de la salida.
$ Target Target/
La mayoría de las veces, esto no es algo que necesitemos. Sin embargo, dependiendo de la situación, podría ser útil.
Prueba de RSYNC Run
Antes de ejecutar un comando RSYNC, siempre es importante verificar que el comando realizará la acción como se esperaba. Si desea probar la acción RSYNC para un determinado comando, use el indicador "-n" o "-secado".
$ rsync -avn primario/ objetivo
$ RSYNC -AVN objetivo primario
Aquí, la salida muestra lo que RSYNC realizaría si el comando se ejecutara realmente. Siempre que esté probando, no olvide usar la bandera "-V" para obtener una representación precisa de lo que está sucediendo.
Rsync sobre una conexión remota
Esta es otra característica interesante que RSYNC admite. Si su ubicación de copia de seguridad está en algún lugar remota, puede configurar fácilmente RSYNC para realizar una copia de seguridad en la ubicación remota a través de SSH. Sin embargo, ambas máquinas deben tener RSYNC instalado. Además, ambos sistemas también deben tener las teclas SSH establecidas.
Listo? Empecemos. Al principio, es el archivo que se sincroniza.
$ rsync -a@ :<
Destino_dir>
Aquí, esta operación se llama un "empuje" porque empuja un directorio del sistema local a un sistema remoto. Lo contrario se conoce como "tirón".
$ rsync -a@ :
RSYNC trata el primer argumento como la fuente, la segunda como destino.
Opciones útiles de RSYNC
RSYNC admite una tonelada de opciones. Todos ellos sirven a su propio propósito. Sin embargo, en su mayor parte, solo un puñado de ellos se usan la mayor parte del tiempo. En esta sección, echemos un vistazo a algunas opciones útiles de RSYNC.
La mayoría de las veces, los archivos están a punto de sincronizar. Usando la compresión, puede ahorrar tiempo y ancho de banda a costa de un poco de potencia de procesamiento adicional. RSYNC ofrece compresión por defecto. Para realizar una sincronización comprimida, use la bandera "-Z".
$ rsync -avz
Esta bandera interesante combina la función de la bandera "-progress" y "-Partial". El primero es mostrar una barra de progreso de la transferencia y la segunda es habilitar la reanudación de la transferencia interrumpida. Ambas características se combinan en la bandera "-P".
$ rsync -avzp
Ahora, veremos cómo RSYNC maneja la sincronización de archivos de manera inteligente. Ejecute el comando anterior nuevamente.
$ rsync -avzp
Aquí, RSYNC no volvió a cargar todos los archivos. En cambio, se saltó a los que no cambiaron en absoluto. En este ejemplo, omitió todos los archivos ya que todos están presentes en el directorio de destino.
¿Qué pasa si eliminó un archivo del directorio de origen?? Por defecto, RSYNC no eliminará nada del directorio de destino. Para forzar los archivos RSYNC Eliminar, use el indicador "-delete". Sin embargo, use la ejecución seca para probar si el comando funciona como desee.
$ rsync -avn --delete
De forma predeterminada, RSYNC sincronizará cada archivo/directorio de la fuente al directorio de destino. En ciertas situaciones, es posible que desee incluir/excluir ciertos archivos de la sincronización. RSYNC ofrece opciones útiles como "-exclude" e "-include" para excluir/incluir ciertos archivos. Pasar el patrón de archivo como el valor de estos argumentos.
$ rsync -avn --exclude =--incluir =
También puede definir el tamaño de archivo más grande que RSYNC debería sincronizar. Para hacer eso, use el indicador "-Max-Size" seguido del tamaño del archivo.
$ rsync -avn --max -size = '10k'
RSYNC tiene otra característica interesante en la manga. Ya no necesita el archivo fuente después de sincronizar? Rsync puede hacer eso, no hay problema. Sin embargo, asegúrese de que no esté ejecutando rsync con la bandera "-delete". De lo contrario, RSYNC eliminará los archivos sincronizados del destino!
$ RSYNC -AV--Remove-Source-Files
Pensamientos finales
Estos son solo un escenario común y simple de uso de RSYNC. Ofrece mucho más que eso. Es posible automatizar las operaciones de RSYNC utilizando RSYNC Daemon u otras secuencias de comandos. Con suerte, esta guía fue útil para comenzar con RSYNC.
Interesado en más rsync? Bueno, puede usar RSYNC como una copiadora de archivo. Es más eficiente e inteligente que CP. Las características y el uso más profundos se pueden encontrar en la página del hombre RSYNC.
$ man rsync
Disfrutar!