Introducción
Rsync significa "Sincronización remota". El rsync
El comando le permite transferir y sincronizar datos entre diferentes máquinas y directorios. Usando el protocolo Secure Shell (SSH), puede copiar sus archivos de forma segura a otra ubicación.
La herramienta rsync tiene muchos beneficios en comparación con otros métodos para copiar archivos. Utiliza compresión y descompresión al enviar y recibir archivos. La herramienta solo transfiere archivos nuevos o actualizados, ahorrando ancho de banda y acelerando los tiempos de transferencia.
Siga esta guía para aprender a usar rsync a través de SSH para transferir o copiar archivos.
Requisitos previos
- Usuario con sudo o raíz privilegios
- Acceso SSH a un servidor a través de la línea de comandos/ventana de terminal
- Rsync instalado en la máquina local y de destino
Verificar la instalación de Rsync
Las distribuciones de Linux más recientes tienen rsync por defecto. Para verificar que su sistema tenga instalado rsync, ejecute el comando de instalación.
Para Debian y Ubuntu máquinas, use apt-get
:
sudo apt-get install rsync
Si rsync ya está instalado, el resultado muestra la versión actual de la herramienta.
En basado en RPM las máquinas, como CentOS, usan:
sudo yum install rsync
Transferir archivos con Rsync sobre SSH
Antes de que pueda comenzar a transferir archivos y directorios con rsync a través de SSH, asegúrese de que puede usar SSH para conectarse a un servidor remoto. Una vez verificado, puede comenzar a hacer una copia de seguridad de sus datos. Asegúrese de que su sistema de destino tenga suficiente espacio de almacenamiento.
La sintaxis para copiar archivos a un servidor remoto a través de SSH con rsync
el comando es:
rsync OPTION SourceDirectory_or_filePath [email protected]_or_name:Target
Ejemplos de comandos rsync
Siga el resto de la guía para ver los ejemplos de los casos de uso de rsync más comunes .
Transferir un archivo específico con Rsync
Para transferir un solo archivo a una máquina remota, ingrese la ruta completa del archivo de origen. Por ejemplo:
rsync ~/Dir1/source.pdf [email protected]:~/Desktop/test
Asegúrese de utilizar las comillas para los archivos que contienen espacios en el nombre. Por ejemplo:
rsync ~/Desktop/Dir1/"source pdf sample.pdf" [email protected]:~/Desktop/test
Transferir Contenidos de un Directorio con Rsync
Hay algunas opciones al sincronizar el contenido del directorio con rsync a través de SSH.
Para transferir todos los archivos de un directorio de origen a un destino en un host remoto, ingrese:
rsync ~/SourceDirectory/* [email protected]:~/Destination
El asterisco (*) indica a la herramienta que incluya todos los archivos en el directorio de origen. Los subdirectorios no transferido .
Por ejemplo:
El resultado muestra los directorios que rsync omitió durante la transferencia.
Para incluir todos los subdirectorios del directorio de origen, use -r
(recursivo) o -a
(archivo) opción. El -a
bandera es lo que recomendamos. Esta opción se sincroniza recursivamente y mantiene todas las configuraciones de archivos y permisos. Esta vez no uses el asterisco en la ruta de origen.
rsync -a ~/Desktop/Dir1/ [email protected]:~/Desktop/test
Cuando ejecuta el comando en este formato, rsync transfiere todos los archivos y subdirectorios del directorio de origen a la ubicación de destino. De nuestro ejemplo anterior, la prueba la carpeta tendrá el contenido de Dir1 fuente cuando se complete la transferencia.
Para omitir la copia de archivos, consulte nuestra guía sobre cómo excluir archivos y directorios en la transferencia de datos mediante el comando rsync.
Comprobar el progreso de la transferencia de archivos Rsync
Para verificar el estado de las transferencias de rsync, use -P
opción. Esta opción muestra los tiempos de transferencia, así como los nombres de los archivos y directorios que se sincronizan.
Si hay un problema con su conexión y la sincronización se interrumpe, -P
reanuda sus transferencias.
Ejecute el comando en este formato para sincronizar recursivamente y verifique el estado de la transferencia:
rsync -aP ~/SourceDirectory/ [email protected]:~/Destination
Por ejemplo:
Si vuelve a ejecutar el mismo comando cuando no ha habido cambios en el directorio de origen, la transferencia no se produce. La razón es que rsync solo transfiere modificaciones en archivos y archivos nuevos. En este caso, la salida muestra solo la siguiente línea:
Cuando hay un cambio incluso en un archivo de origen, rsync lo detecta y lo sincroniza con el destino.
Hicimos un cambio en un archivo y volvimos a ejecutar el mismo comando:
El resultado muestra la fuente sample2 el archivo fue transferido desde que rsync detectó que modificamos el archivo.