GNU/Linux >> Tutoriales Linux >  >> Linux

Comando Rsync en Linux con ejemplos

rsync es una utilidad de línea de comandos rápida y versátil para sincronizar archivos y directorios entre dos ubicaciones a través de un shell remoto, o desde/hacia un demonio Rsync remoto. Proporciona una transferencia de archivos incremental rápida al transferir solo las diferencias entre el origen y el destino.

Rsync se puede usar para duplicar datos, copias de seguridad incrementales, copiar archivos entre sistemas y como reemplazo de scp , sftp y cp comandos.

Este artículo explica cómo usar rsync a través de ejemplos prácticos y explicaciones detalladas de los rsync más comunes opciones.

Instalando Rsync #

El rsync La utilidad está preinstalada en la mayoría de las distribuciones de Linux y macOS. Si no tienes rsync instalado en su sistema, puede instalarlo fácilmente usando el administrador de paquetes de su distribución.

Instalar Rsync en Ubuntu y Debian #

sudo apt install rsync

Instalar Rsync en CentOS y Fedora #

sudo yum install rsync

Sintaxis del comando Rsync #

Antes de entrar en cómo usar el rsync comando, comencemos revisando la sintaxis básica.

El rsync expresiones de utilidad toman la siguiente forma:

Local to Local:  rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]
  • OPTION - Las opciones de rsync.
  • SRC - Directorio de origen.
  • DEST - Directorio de destino.
  • USER - Nombre de usuario remoto.
  • HOST - Nombre de host remoto o dirección IP.

rsync proporciona una serie de opciones que controlan cómo se comporta el comando. Las opciones más utilizadas son:

  • -a , --archive , modo de archivo, equivalente a -rlptgoD . Esta opción le dice a rsync para sincronizar directorios recursivamente, transferir dispositivos especiales y de bloqueo, preservar enlaces simbólicos, tiempos de modificación, grupos, propiedad y permisos.
  • -z , --compress . Esta opción fuerza rsync para comprimir los datos a medida que se envían a la máquina de destino. Use esta opción solo si la conexión a la máquina remota es lenta.
  • -P , equivalente a --partial --progress . Cuando se usa esta opción, rsync muestra una barra de progreso durante la transferencia y mantiene los archivos transferidos parcialmente. Es útil cuando se transfieren archivos grandes a través de conexiones de red lentas o inestables.
  • --delete . Cuando se usa esta opción, rsync elimina los archivos superfluos de la ubicación de destino. Es útil para duplicar.
  • -q , --quiet . Utilice esta opción si desea suprimir los mensajes que no son de error.
  • -e . Esta opción le permite elegir un shell remoto diferente. Por defecto, rsync está configurado para usar ssh.

Uso básico de Rsync #

El caso de uso más básico de rsync es copiar un solo archivo de una a otra ubicación local. Aquí hay un ejemplo:

rsync -a /opt/filename.zip /tmp/

El usuario que ejecuta el comando debe tener permisos de lectura en la ubicación de origen y permisos de escritura en el destino.

Omitir el nombre de archivo de la ubicación de destino copia el archivo con el nombre actual. Si desea guardar el archivo con un nombre diferente, especifique el nuevo nombre en la parte de destino:

rsync -a /opt/filename.zip /tmp/newfilename.zip

El verdadero poder de rsync viene al sincronizar directorios. El siguiente ejemplo muestra cómo crear una copia de seguridad local de los archivos del sitio web:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Si el directorio de destino no existe, rsync lo creará.

Vale la pena mencionar que rsync da un tratamiento diferente a los directorios de origen con una barra diagonal final (/ ). Si el directorio de origen tiene una barra inclinada al final, el comando copiará solo el contenido del directorio en el directorio de destino. Cuando se omite la barra diagonal final, rsync copia el directorio de origen dentro del directorio de destino.

Usando rsync para sincronizar datos desde/hacia una máquina remota #

Al usar rsync para transferir datos de forma remota, debe estar instalado tanto en la máquina de origen como en la de destino. Las nuevas versiones de rsync están configurados para usar SSH como shell remoto predeterminado.

En el siguiente ejemplo, estamos transfiriendo un directorio de una máquina local a una remota:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Si no ha configurado un inicio de sesión SSH sin contraseña en la máquina remota, se le pedirá que ingrese la contraseña de usuario.

Para transferir datos de una máquina remota a una local, use la ubicación remota como fuente:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Si SSH en el host remoto está escuchando en un puerto que no sea el 22 predeterminado, especifique el puerto usando -e opción:

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Al transferir grandes cantidades de datos, se recomienda ejecutar rsync comando dentro de una sesión de pantalla o usar el -P opción:

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Excluir archivos y directorios #

Hay dos opciones para excluir archivos y directorios. La primera opción es usar --exclude argumento y especifique los archivos y directorios que desea excluir en la línea de comando.

Al excluir archivos o directorios, debe usar sus rutas relativas a la ubicación de origen.

En el siguiente ejemplo se muestra cómo excluir los node_modules y tmp directorios:

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

La segunda opción es usar --exclude-from y especifique los archivos y directorios que desea excluir en un archivo.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
/exclude-file.txt
node_modules
tmp

Conclusión #

Le mostramos cómo usar Rsync para copiar y sincronizar archivos y directorios. Hay mucho más que aprender sobre Rsync en la página del Manual del usuario de Rsync.

Siéntase libre de dejar un comentario si tiene alguna pregunta.


Linux
  1. Comando wc Linux con ejemplos

  2. Comando Linux Tee con ejemplos

  3. Comando de cabeza de Linux con ejemplos

  4. Comando JQ en Linux con ejemplos

  5. Comando rsync de Linux con ejemplos prácticos

15 comandos ps de Linux con ejemplos

Comando de CD de Linux con ejemplos

Comando de vigilancia de Linux con ejemplos

Comando de espera en Linux con ejemplos

Comando de exportación de Linux con ejemplos

Comando IP de Linux con ejemplos