Androide

Cómo usar rsync para la transferencia y sincronización de datos locales y remotos

Sincronizate. Sincronización de Ficheros con Rsync.

Sincronizate. Sincronización de Ficheros con Rsync.

Tabla de contenido:

Anonim

Rsync es una utilidad de línea de comandos rápida y versátil que sincroniza archivos y carpetas entre dos ubicaciones a través de un shell remoto, o desde / a 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 los comandos scp , sftp y cp para el uso diario.

En este tutorial, le mostraremos cómo usar rsync través de ejemplos prácticos y explicaciones detalladas de las opciones rsync más comunes.

Instalar Rsync

La utilidad rsync está preinstalada en la mayoría de las distribuciones de Linux y macOS. Puede verificar si está instalado en su sistema escribiendo:

rsync --version

rsync version 3.1.2 protocol version 31

Instale Rsync en Ubuntu y Debian

sudo apt install rsync

Instale Rsync en CentOS y Fedora

sudo yum install rsync

Sintaxis del comando Rsync

Antes de comenzar a usar el comando rsync , comencemos por revisar la sintaxis básica.

Las expresiones de utilidad rsync toman la siguiente forma:

Local to Local: rsync…… DEST Local to Remote: rsync…… HOST:DEST Remote to Local: rsync… HOST:SRC…

  • 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 cada aspecto de su comportamiento. Las opciones más utilizadas son:

  • -a , --archive , modo de archivo, equivalente a -rlptgoD . Esta opción le dice a rsync que sincronice directorios de forma recursiva, transfiera dispositivos especiales y bloquee, conserve enlaces simbólicos, tiempos de modificación, grupo, propiedad y permisos. -z , --compress . Esta opción obligará a rsync a 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 mostrará una barra de progreso durante la transferencia y para mantener los archivos parcialmente transferidos. Es útil al transferir archivos grandes a través de conexiones de red lentas o inestables. --delete . Al usar esta opción, rsync eliminará archivos extraños de la ubicación de destino. Es útil para reflejar. -q , --quiet . Use esta opción si desea suprimir los mensajes sin 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

Para copiar un solo archivo de una a otra ubicación local, debe ejecutar el siguiente comando:

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

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

Omitir el nombre del archivo desde 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

En el siguiente ejemplo, estamos creando una copia de seguridad local de los archivos de nuestro 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 inclinada / . Si agrega una barra diagonal al directorio de origen, copiará solo el contenido del directorio al directorio de destino. Cuando se omite la barra diagonal final, rsync copiará el directorio de origen dentro del directorio de destino.

Cómo usar Rsync para sincronizar datos desde / a una máquina remota

Cuando utilice rsync para la transferencia remota, debe instalarse tanto en la máquina de origen como en la de destino. Las nuevas versiones de rsync están configuradas 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.

Si desea transferir datos de una máquina remota a una máquina local, debe usar 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 predeterminado 22, puede especificar el puerto utilizando la opción -e :

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 el comando rsync dentro de una sesión de pantalla o usar la opción -P :

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

Excluir archivos y directorios

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

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

En el siguiente ejemplo, estamos excluyendo los directorios node_modules y tmp que se encuentran dentro del src_directory :

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

La segunda opción es utilizar el argumento --exclude-from y especificar 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

En este tutorial, aprendió a 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.

terminal rsync