GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar el comando Linux Rsync (sincronización remota)

El comando rsync de Linux transfiere y sincroniza archivos o directorios de manera eficiente entre una máquina local, otro host, shell remoto o cualquier combinación de estos. Cualquiera que trabaje con sistemas basados ​​en Linux debería usar este poderoso comando para mejorar su productividad. Con la ayuda de este artículo, aprenderá todo lo que necesita para comenzar a usarlo.

Sincronizar carpetas o copiar archivos manualmente puede llevar mucho tiempo. La utilidad rsync puede hacer la mayor parte del trabajo por usted mientras agrega excelentes funciones para ahorrar tiempo. Incluso si pierde la conexión durante la transferencia, esta herramienta comenzará exactamente donde se quedó, una vez que se restablezca la conexión.

Sintaxis básica

La sintaxis básica para rsync funciona de la siguiente manera:

rsync [optional modifiers] [SRC] [DEST]

Hay un par de formas diferentes de usar Linux rsync. En este ejemplo, [modificadores opcionales] indicar las acciones a tomar, [SRC] es el directorio de origen y [DEST] es el directorio o máquina de destino.

Sintaxis básica para Remote Shell

Al usar un shell remoto, como SSH o RSH, la sintaxis de rsync será ligeramente diferente.

Para acceder al shell remoto (PULL ) use el comando rsync:

rsync [optional modifiers] [USER@]HOST:SRC [DEST]

Para acceder al shell remoto (PUSH ) use el comando rsync:

rsync [optional modifiers] SRC [USER@]HOST:[DEST]

Cómo comprobar la versión de Rsync

Antes de verificar rsync, debemos iniciar sesión en el VPS que usaremos. Este útil tutorial le mostrará cómo hacerlo en una máquina con Windows usando Putty SSH. Si está usando una computadora MacOS o Linux, use la terminal en su lugar.

Rsync viene preinstalado con muchas distribuciones de Linux. Para verificar si rsync está instalado en su máquina, ejecute el siguiente comando:

rsync -version

En nuestra distribución de Ubuntu, el comando produjo el siguiente resultado:

rsync  version 3.1.3  protocol version 31

Eso significa que la versión 3.1.3 de rsync ya está en nuestra máquina. Sencillo, ¿verdad?

Cómo instalar Rsync

Si su máquina no tiene rsync preinstalado, puede hacerlo manualmente en solo un minuto. En Debian distribuciones basadas como Ubuntu, puedes hacerlo usando el siguiente comando:

apt-get install rsync

En distribuciones basadas en rpm como Fedora y CentOS usa el siguiente comando:

yum install rsync

En MacOS usa el siguiente comando:

brew install rsync

¡Eso es todo! Linux rsync está listo para sincronizar datos, realizar transferencias de archivos y eliminar archivos. Puede verificar si la instalación fue exitosa usando el comando mencionado anteriormente:

rsync -version

Cómo usar los comandos de Rsync

Para este tutorial, crearemos dos directorios en nuestro escritorio Linux con los nombres original y duplicar . El directorio original tiene tres archivos mientras que el duplicado está vacío. Ahora veamos cómo rsync creará nuevas formas de aumentar la productividad.

Para crear dos directorios de prueba, use los siguientes comandos:

cd ~
mkdir original
mkdir duplicate
touch original/file{1..3}

Si desea volver a verificar, use el ls comando para listar todos los archivos dentro del directorio:

ls original

La salida se verá similar a esto:

file1
file2
file3

Si usa el ls comando con el directorio duplicado, la perspectiva debe estar vacía.

Ahora que los directorios están configurados, probemos algunos comandos más.

El siguiente comando copiará o sincronizará todos los archivos en el original directorio en el duplicado directorio.

rsync original/* duplicate/

* indica al comando rsync que sincronice todo en el directorio original con el duplicado.

Si colocamos una nueva imagen o archivo en la carpeta original y volvemos a ejecutar el mismo comando, solo la nueva imagen se copiará en el destino.

Esta característica es útil cuando copia archivos a través de una red con ancho de banda limitado.

Comandos más comunes de Rsync

Aquí hay una lista de los comandos más comunes usados ​​con rsync:

Esto habilita el modo de archivo.

-a, --archive

Esto le brinda una salida visual que muestra el progreso del proceso.

-v, --verbose

Esto se genera en un formato legible por humanos.

-h, --human-readable format

Esto comprime los datos del archivo durante la transferencia.

-z, --compress

Esto es para copiar datos recursivamente

-r

Cómo usar los comandos de Rsync con subdirectorios

Tenga en cuenta que el comando anterior solo copiará archivos del original el directorio principal de la carpeta, y no cualquiera de los subdirectorios.

Si también desea copiar los subdirectorios, deberá usar este comando:

rsync -r original/ duplicate/

La -r (–recursivo ) le dice a rsync que copie todo, incluidos los subdirectorios y los archivos de nuestra carpeta original.

El / modificador usado después de original le indica a rsync que copie el contenido del directorio original a la carpeta duplicada.

Cómo sincronizar archivos

Si desea sincronizar archivos, es decir, copiar archivos que están en la carpeta de destino, pero que no están en el original a la carpeta original, use el siguiente comando:

rsync -r original duplicate/

Con este comando, podemos estar seguros de que tanto las carpetas originales como las duplicadas contendrán los mismos archivos.

Cómo combinar comandos Rsync

Otra opción útil es -a (–archive) ya que se puede unir con muchos otros comandos. Eso significa que no solo copiará los archivos, sino que también copiará los permisos, las horas de modificación y cualquier otra fecha.

Agregando el -a opción con -v sería similar a esto:

rsync -av --dry-run  original/ duplicate/

No te preocupes, solo parece complicado. Vamos a desglosarlo.

Este comando solo mostrará los archivos que se copiarán sin realizar ningún cambio real. Con este comando, puede obtener una lista de los archivos que se copiarán.

Si todos los archivos son los que desea copiar, vuelva a ejecutar el comando sin —ejecutar en seco .

—ejercicio en seco (o -n ) hace que rsync realice una ejecución de prueba que no realiza ningún cambio.

Otras opciones para los comandos de Rysnc

Al agregar el -a opción a la -v opción, haciendo -av en nuestro comando, aumenta la verbosidad. Así es como debería verse:

rsync -av original/ duplicate/

Si desea sincronizar dos carpetas y eliminar los elementos de la carpeta duplicada, que no existen en la carpeta original, agregue –eliminar opción, así:

rsync -av --delete  original/ duplicate/

También puede excluir archivos o subdirectorios específicos cuando está sincronizando dos carpetas. Haga esto agregando -exclude= . Si necesita especificar más de un archivo, sepárelos con una coma.

rsync -av --exclude=file1,file2  original/ duplicate/

También puede incluir archivos o subdirectorios específicos cuando esté sincronizando. Haga esto agregando -include= . También puede usar esto con la opción -exclude=. El siguiente ejemplo incluirá archivos que comiencen con la letra L y excluir todos los demás archivos:

rsync -av --include=L* --exclude=*  original/ duplicate/

Con Rsync, también puede especificar el tamaño del archivo que se puede sincronizar. Para hacer esto, use el –max-size opción:

rsync -av --max-size=10k original/ duplicate/

Usando la opción -z (–comprimir) consolidará los archivos que se transfieren a través de la red. Como beneficio adicional, veamos cómo realizar una transferencia desde el servidor de origen a otro. El comando se vería así:

rsync -az ~/Desktop/Original [email protected]:~/tmp/

Como se mencionó antes -z comprime los archivos, -a , o simplemente agregando a a -z, garantizará que todos los permisos también se copien.

~/Escritorio/Original es la fuente Es un directorio local:el que está en la máquina en la que ha iniciado sesión y, por último, [email protected]:~/tmp/ indica el destino. [email protected] es la dirección del servidor remoto de destino, mientras que :~/tmp/ apunta a una carpeta específica en esa máquina.

Cómo agregar una barra de progreso

Además de los comandos anteriores, puede agregar -P que combinará las opciones –progreso y –parcial . Esto le dará una barra de progreso para los archivos que se están transfiriendo y también le permitirá reanudar cualquier transferencia de archivos interrumpida.

rsync -azP [SRC] [DEST]

La salida se verá similar a esto:

sending incremental file list
./
file1
         0 100%    0.00kB/s   0:00:00   (xfer#1, to-check=1/3)
file2
         0 100%    0.00kB/s   0:00:00   (xfer#2, to-check=2/3)
file3
         0 100%    0.00kB/s   0:00:00   (xfer#3, to-check=3/3)

Luego, si ejecutamos el comando nuevamente, veremos una salida más corta. Esto se debe a que no se han realizado nuevos cambios. La salida se verá similar a esto:

sending incremental file list
send 26 bytes received 5 bytes 1200.00 bytes/sec
total size is 0 speedup is 0.00

Si solo desea transferir ciertos archivos, puede especificar con el siguiente comando:

touch original/file{1..5}
rsync -azP [SRC] [DEST]

Esto dará un resultado similar al comando anterior, pero solo con los archivos especificados entre llaves.

Cómo crear una copia de seguridad de Rsync

Otro comando importante es crear una copia de seguridad de Rsync. Haga esto combinando –backup con el –dir comando para que pueda especificar dónde se almacenarán los archivos de copia de seguridad.

rsync -a --delete --backup --backup-dir=/path/to/backup /path/to/SRC [DEST]

Conclusión

Solo cubrimos la punta del iceberg cuando se trata de comandos Rsync. Linux Rsync es una utilidad increíblemente poderosa que todo administrador de servidores o desarrollador de Linux debería conocer. Cubrimos todo para que pueda comenzar, desde la instalación hasta los comandos básicos. Si desea conocer las funciones más avanzadas, consulte la documentación oficial.

Prepárate para mejorar tu productividad. Buena suerte con tu proyecto.


Linux
  1. Comando SCP en Linux:cómo usarlo, con ejemplos

  2. El comando rsync de Linux:cómo usarlo

  3. ¿Cómo usar el comando Rsync en Linux?

  4. Cómo usar el comando de pantalla de Linux

  5. ¿Cómo usar rsync desde una PC con Windows a un servidor Linux remoto?

Cómo usar el comando nohup de Linux

Cómo usar el comando FTP de Linux para transferir archivos

Cómo usar du Command en Linux

Cómo usar el comando sysctl en Linux

Cómo usar el comando de apagado de Linux

Cómo usar grep en Linux