Rsync. ( Remote Sync. es un comando más comúnmente utilizado para copiar. y sincronizar. archivos y directorios de forma remota. y local. en sistemas Linux. Unix. Con la ayuda del comando rsync. puede copiar y sincronizar sus datos de forma remota y local en directorios, discos y redes, realizar copias de seguridad de datos y duplicar entre dos máquinas Linux.
Sincronización de archivos local y remota Rsync
Este artículo explica 10. el uso básico y avanzado del comando rsync. para transferir sus archivos de forma remota y local en máquinas basadas en Linux. No necesita ser un usuario root. para ejecutar el comando rsync.
Algunas ventajas y características del comando Rsync
- Copia y sincroniza de manera eficiente archivos hacia o desde un sistema remoto.
- Admite la copia de enlaces, dispositivos, propietarios, grupos y permisos.
- Es más rápido que scp. ( Secure Copiar. porque rsync. utiliza un protocolo de actualización remota que permite transferir solo las diferencias entre dos conjuntos de archivos. La primera vez, copia todo el contenido de un archivo o directorio desde el origen al destino, pero la próxima vez copia solo los bloques y bytes modificados al destino.
- Rsync consume menos ancho de banda. ya que utiliza el método de compresión y descompresión al enviar y recibir datos en ambos extremos.
Sintaxis básica del comando rsync # opciones rsync origen destino Algunas opciones comunes que se usan con los comandos rsync
- -v. detallado
- -r. copia datos de forma recursiva (pero no conserva las marcas de tiempo ni los permisos mientras transfiere datos
- -a. modo de archivo, el modo de archivo permite copiar archivos de forma recursiva y también conserva los enlaces simbólicos, los permisos de archivo, las propiedades de usuarios y grupos y las marcas de tiempo
- -z. : comprime datos de archivos
- -h. números de salida legibles por humanos en un formato legible por humanos
Lectura sugerida: Cómo sincronizar archivos/directorios usando Rsync con un puerto SSH no estándar
Instale rsync en su máquina Linux
Podemos instalar el paquete rsync. con la ayuda del siguiente comando.
# yum install rsync (en Red Hat. sistemas basados en) # apt-get install rsync (en sistemas basados en Debian.
Table of Contents
1. Copiar/sincronizar archivos y directorio localmente
Copiar/sincronizar un archivo en una computadora local
Este siguiente comando sincronizará un solo archivo en una máquina local de una ubicación a otra. En este ejemplo, se debe copiar o sincronizar un nombre de archivo backup.tar. en la carpeta /tmp/backups/.
[[email protected]] # rsync-zvh backup.tar/tmp/backups/created directory/tmp/backups backup.tar enviado 14.71M bytes recibido 31 bytes 3.27M bytes/seg el tamaño total es 16.18M aceleración es 1.10
En el ejemplo anterior, puede ver que si el destino aún no existe, rsync creará un directorio automáticamente para el destino.
Copiar/sincronizar un directorio en la computadora local freestar.config.enabled_slots.push (LocationName: “tecmint_incontent”, slotId: “tecmint_incontent” );
El siguiente comando transferirá o sincronizará todos los archivos de un directorio a un directorio diferente en la misma máquina. En este ejemplo, /root/rpmpkgs. contiene algunos archivos de paquetes rpm y desea que ese directorio se copie dentro de la carpeta /tmp/backups/.
[[email protected]] # rsync-avzh/root/rpmpkgs/tmp/backups/enviando lista incremental de archivos rpmpkgs/rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm rpmpkgs/nagios-3.5.0.tar.gz rpmpkgs/nagios-plugins-1.4.16.tar.gz enviado 4.99M bytes recibido 92 bytes 3.33M bytes/seg total el tamaño es de 4,99 M la aceleración es de 1,00
2. Copiar/sincronizar archivos y directorios hacia o desde un servidor
Copiar un directorio desde el servidor local a un servidor remoto
Este comando sincronizará un directorio desde una máquina local a una máquina remota. Por ejemplo. hay una carpeta en su computadora local “ rpmpkgs. que contiene algunos paquetes RPM. y desea que el contenido de ese directorio local se envíe a un servidor remoto, puede usar el siguiente comando.
[[correo electrónico protegido]] $ rsync-avz rpmpkgs/[correo electrónico protegido]:/home/contraseña de [correo electrónico protegido]: envío de lista incremental de archivos ./httpd-2.2 .3-82.el5.centos.i386.rpm mod_ssl-2.2.3-82.el5.centos.i386.rpm nagios-3.5.0.tar.gz nagios-plugins-1.4.16.tar.gz envió 4993369 bytes recibido 91 bytes 399476.80 bytes/seg el tamaño total es 4991313 aceleración es 1.00 Copiar/sincronizar un directorio remoto a una máquina local
Este comando le ayudará a sincronizar un directorio remoto con un directorio local. Aquí, en este ejemplo, un directorio /home/tarunika/rpmpkgs. que está en un servidor remoto se está copiando en su computadora local en /tmp/myrpms.
[[correo electrónico protegido]] # rsync-avzh [correo electrónico protegido]:/home/tarunika/rpmpkgs/tmp/myrpms [correo electrónico protegido] contraseña: recibiendo la lista de archivos incrementales directorio creado/tmp/myrpms rpmpkgs/rpmpkgs/httpd-2.2 .3-82.el5.centos.i386.rpm rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm rpmpkgs/nagios-3.5.0.tar.gz rpmpkgs/nagios-plugins-1.4.16. tar.gz enviado 91 bytes recibido 4.99M bytes 322.16K bytes/seg el tamaño total es 4.99M aceleración es 1.00
3. Rsync Over SSH
Con rsync, podemos usar SSH. ( Secure Shell. para la transferencia de datos, usando el protocolo SSH. mientras Al transferir nuestros datos, puede estar seguro de que sus datos se transfieren en una conexión segura con cifrado para que nadie pueda leer sus datos mientras se transfieren por cable en Internet.
También cuando usamos rsync Necesitamos proporcionar la contraseña de usuario. root. para realizar esa tarea en particular, por lo que al usar la opción SSH. enviará sus inicios de sesión de manera encriptada para que su contraseña. estará segura.
Copie un archivo de un servidor remoto a un servidor local con SSH
Para especificar un protocolo con rsync. debe proporcionar Opción “-e. con el nombre de protocolo que desea utilizar. En este ejemplo, usaremos “ ssh. con la opción “-e. y realizaremos la transferencia de datos.
[[email protected]] # rsync-avzhe ssh [correo electrónico protegido]:/root/install.log/tmp/contraseña de [correo electrónico protegido]: recibiendo la lista de archivos incrementales install.log enviado 30 bytes recibidos 8.12K bytes 1.48K bytes/seg el tamaño total es 30.74K aceleración es 3.77 Copiar un archivo de un servidor local a un servidor remoto con SSH [[email protected]] # rsync-avzhe ssh backup.tar [email protected]:/backups/contraseña de [email protected]: enviando copia de seguridad incremental de la lista de archivos. tar enviado 14.71M bytes recibido 31 bytes 1.28M bytes/seg el tamaño total es 16.18M aceleración es 1.10
Lectura sugerida: Use Rsync para sincronizar archivos nuevos o cambiados/modificados en Linux
4. Mostrar el progreso mientras se transfieren datos con rsync
Para mostrar el progreso mientras se transfieren los datos de una máquina a una máquina diferente, podemos usar la opción “ –progreso”. Muestra los archivos y el tiempo restante para completar la transferencia.
[[email protected]] # rsync-avzhe ssh–progress/home/rpmpkgs [email protected]:/root/rpmpkgs [email protected] ‘s password: enviando lista incremental de archivos directorio creado/root/rpmpkgs rpmpkgs/rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm 1.02M 100% 2.72MB/s 0:00:00 (xfer # 1, to-check = 3/5) rpmpkgs/mod_ssl-2.2. 3-82.el5.centos.i386.rpm 99.04K 100% 241.19kB/s 0:00:00 (xfer # 2, to-check = 2/5) rpmpkgs/nagios-3.5.0.tar.gz 1.79M 100% 1.56MB/s 0:00:01 (xfer # 3, para verificar = 1/5) rpmpkgs/nagios-plugins-1.4.16.tar.gz 2.09M 100% 1.47MB/s 0:00:01 (xfer # 4, to-check = 0/5) enviado 4.99M bytes recibido 92 bytes 475.56K bytes/seg el tamaño total es 4.99M aceleración es 1.00
5. El uso de opciones –incluir y –excluir
Estas dos opciones nos permiten incluir. y excluir. archivos especificando parámetros con esta opción que nos ayuda a especificarlos. archivos o directorios que desea incluir en su sincronización y excluir archivos y carpetas que no desea que se transfieran.
Aquí, en este ejemplo, el comando rsync incluirá solo los archivos y el directorio que comience con ‘ R. y excluir todos los demás archivos y directorios.
[[email protected]] # rsync-avze ssh–include ‘R *’–exclude ‘*’ [email protected] :/var/lib/rpm//root/rpm [email protected] ‘s password: recibiendo la lista incremental de archivos directorio creado/root/rpm ./Requirename Requireversion enviado 67 bytes recibidos 167289 bytes 7438.04 bytes/seg el tamaño total es 434176 speedup is 2,59
6. Uso de la opción –delete
Si un archivo o directorio no existe en el origen, pero ya existe en el destino, es posible que desee eliminar ese archivo/directorio existente en el destino durante la sincronización.
Podemos usar la opción ‘ –delete. para eliminar archivos que no están en el directorio de origen.
El origen y el destino están sincronizados. Ahora creando un nuevo archivo test.txt. en el destino.
[[email protected]] # touch test.txt [[email protected]] # rsync-avz–delete [email protected] :/var/lib/rpm/. Contraseña: recibiendo lista de archivos … terminado de eliminar test.txt ./enviado 26 bytes recibido 390 bytes 48,94 bytes/seg el tamaño total es 45305958 aceleración es 108908,55
El destino tiene el nuevo archivo llamado test.txt. al sincronizar con la fuente con la opción ‘ –delete. , eliminó el archivo test.txt.
7. Establecer el tamaño máximo de los archivos que se van a transferir
Puede especificar el tamaño máximo. de los archivos que se van a transferir o sincronizar. Puede hacerlo con la opción “ –tamaño máximo. . En este ejemplo, el tamaño máximo de archivo es 200k. por lo que este comando transferirá solo aquellos archivos que sean iguales o más pequeños que 200k.
[[email protected] ] # rsync-avzhe ssh–max-size = ‘200k’/var/lib/rpm/[correo electrónico protegido]:/root/tmprpm [correo electrónico protegido] contraseña: enviando la lista de archivos incremental creada directorio/root/tmprpm./Conflictname Group Installtid Name Provideversion Pubkeys Requireversion Sha1header Sigmd5 Triggername __db.001 enviado 189.79K bytes recibidos 224 bytes 13.10K bytes/seg el tamaño total es 38.08M speedup es 200.43
8. Eliminar automáticamente los archivos de origen después de una transferencia exitosa
Ahora, suponga que tiene un servidor web principal y un servidor de respaldo de datos, creó una copia de respaldo diaria y la sincronizó con su servidor de respaldo, ahora no desea conservar esa copia local de la copia de seguridad en su servidor web.
Entonces, ¿esperará a que se complete la transferencia y luego eliminará ese archivo de copia de seguridad local manualmente? Claro que no. Esta eliminación automática se puede hacer usando la opción ‘ –remove-source-files. .
[[email protected]] # rsync–remove-source-files-zvh backup.tar/tmp/backups/backup.tar enviado 14.71M bytes recibido 31 bytes 4.20M bytes/seg el tamaño total es 16.18M aceleración es 1.10 [[email protected]] # ll backup.tar ls: backup.tar: No existe tal archivo o directorio
9. Realice un ensayo con rsync
Si es un novato y usa rsync y no sabe qué es exactamente lo que hace su comando. Rsync realmente podría estropear las cosas en su carpeta de destino y luego deshacer puede ser un trabajo tedioso.
Lectura sugerida: Cómo sincronizar dos servidores web/sitios web Apache mediante Rsync