Sincronizate. Sincronización de Ficheros con Rsync.
Tabla de contenido:
- Instalar Rsync
- Instale Rsync en Ubuntu y Debian
- Instale Rsync en CentOS y Fedora
- Sintaxis del comando Rsync
- Uso básico de Rsync
- Cómo usar Rsync para sincronizar datos desde / a una máquina remota
- Excluir archivos y directorios
- Conclusión
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
Instale Rsync en CentOS y Fedora
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 arsync
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á arsync
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
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 rsyncCarpetas locales, locales, itinerantes en AppData en Windows 10
La carpeta AppData de Windows 10 incluye las siguientes subcarpetas: itinerancia, Local y Local Low. Esta publicación explica qué son y sus funciones.
2 excelentes consejos de skydrive para una fácil transferencia y sincronización de carpetas
Esta publicación muestra cómo sincronizar cualquier carpeta en Windows con SkyDrive (sí, sin mover) y cómo mover rápidamente cualquier carpeta a SkyDrive. ¡Ambos consejos geniales!
Cómo usar sshfs para montar directorios remotos sobre ssh
SSHFS (SSH Filesystem) es un cliente de sistema de archivos basado en FUSE para montar directorios remotos a través de una conexión SSH. Este tutorial le mostrará cómo instalar el cliente SSHFS en Linux, macOS y Windows y cómo montar un directorio remoto.