En este artículo, explicaremos cómo usar rsync para copiar archivos con algunos ejemplos prácticos. También explicaremos el uso de rsync en la copia de un solo archivo, varios archivos y un directorio tanto en sistemas locales como remotos. Cubriremos cómo usar Rsync para:
- Copie el archivo / directorio dentro del sistema local
- Copie el archivo / directorio del sistema local al remoto
- Copie el archivo / directorio del sistema remoto al local
Hemos explicado los comandos y el procedimiento mencionados en este artículo en Ubuntu 20.04 LTS. Necesitará la Terminal de línea de comandos para copiar archivos usando rsync. Para abrir la aplicación Terminal de línea de comando, use el atajo de teclado Ctrl + Alt + T.
Instalación de Rsync
Rsync viene preinstalado en Ubuntu 20.04 LTS. Sin embargo, si se elimina accidentalmente del sistema, puede instalarlo de la siguiente manera:
$sudoaptoInstalar en pcrsync
Estas son algunas de las opciones de uso común que se pueden usar con rsync:
–A: modo de archivo
–V: muestra detalles del proceso de copia
–P: muestra la barra de progreso
–R: copia datos de forma recursiva
–Z: comprime datos
–Q: suprime la salida
Copie archivos y directorios localmente
La sintaxis general de rsync es:
$rsync[opción] [fuente] [destino]
Copie un solo archivo localmente
Si desea copiar un archivo de una ubicación a otra dentro de su sistema, puede hacerlo escribiendo rsync seguido del nombre del archivo de origen y el directorio de destino.
Por ejemplo, para copiar un solo archivo file1.txt desde la ubicación actual que es el directorio de inicio al directorio ~ / Documentos, el comando sería:
$rsync/hogar/creer/file1.txt/hogar/creer/DocumentosNota: En lugar de /home/tin/file1.txt, también podemos escribir file1 ya que actualmente estamos trabajando en el directorio de inicio. Además, podemos usar ~ / Documents en lugar de mencionar la ruta completa como / home / tin / Documents.
Copie varios archivos localmente
Si desea copiar varios archivos a la vez de una ubicación a otra dentro de su sistema, puede hacerlo escribiendo rsync seguido del nombre de los archivos de origen y el directorio de destino.
Por ejemplo, para copiar los archivos file2.txt y file3.txt del directorio de inicio al directorio ~ / Documents, el comando sería:
$rsync/hogar/creer/file2.txt/hogar/creer/file3.txt/hogar/creer/DocumentosPara copiar todos los archivos con la misma extensión, puede utilizar el símbolo de asterisco (*) en lugar de especificar individualmente los nombres de los archivos. Por ejemplo, para copiar todos los archivos del directorio Inicio que terminan con la extensión .zip al directorio ~ / Documentos, usaremos:
$rsync/hogar/creer/*.zip ~/DocumentosCopiar directorios localmente
Si desea copiar un directorio con su subdirectorio y todo el contenido de una ubicación a otra dentro de su sistema, puede hacerlo escribiendo rsync seguido del directorio de origen y destino.
Por ejemplo, para copiar el directorio de muestra al directorio test / dentro del directorio de inicio, el comando sería:
$rsync-de /hogar/creer/muestra/hogar/creer/pruebaNota: Especificar / después del directorio de origen solo copia el contenido del directorio. Si no especificamos / después del directorio de origen, el directorio de origen también se copiará al directorio de destino.
Como en el siguiente resultado, puede ver que nuestra muestra del directorio de origen también se copia en el directorio de destino (ya que hemos utilizado sample en lugar de sample / como directorio de origen).
Rsync admite la transferencia incremental, como puede ver en el resultado anterior, que solo transfiere los archivos nuevos o actualizados.
Copie archivos según el tamaño máximo
Mientras copiamos, también podemos especificar el tamaño máximo de los archivos que se pueden copiar con la opción –max-size. Por ejemplo, para copiar los archivos no mayores de 2000k desde ~ / Descargas al directorio ~ / Documentos, el comando sería:
$rsync-a --tamaño máximo= 2000k/hogar/creer/Descargas/* /hogar/creer/DocumentosEste comando copiará todos los archivos de ~ / Descargas al directorio ~ / Documentos, excepto los de más de 2000k.
Copie archivos según el tamaño mínimo
De manera similar, también podemos especificar el tamaño mínimo de los archivos que se pueden copiar con la opción –min-size. Por ejemplo, para copiar los archivos no menores a 5M desde ~ / Descargas al directorio ~ / Documentos, el comando sería:
$rsync-a - tamaño mínimo= 5 M/hogar/creer/Descargas/ /hogar/creer/DocumentosEste comando copiará todos los archivos de ~ / Descargas al directorio ~ / Documentos excepto los menores de 5M.
Excluir archivos
Mientras copia archivos de un directorio a otro, puede excluir algunos archivos utilizando la opción —excluir seguida del nombre del archivo o la extensión del tipo de archivo.
Por ejemplo, para excluir todos los archivos .zip mientras copia archivos desde ~ / Descargas al directorio ~ / Documentos, el comando sería:
$rsync-a --excluir='*.Código Postal' /hogar/creer/Descargas/ /hogar/creer/DocumentosCopie archivos y directorios de forma remota
Con Rsync, puede copiar un solo archivo, varios archivos y directorios a un sistema remoto. Para copiar archivos y directorios de forma remota, necesitará:
- Rsync instalado tanto en el sistema local como en el remoto
- Acceso SSH al sistema remoto
- Contraseña de usuario remoto
Antes de copiar archivos usando rsync, asegúrese de que puede acceder al sistema remoto a través de SSH:
$sshusuario_remoto@IP remota
La sintaxis general para copiar archivos y directorios a un sistema remoto usando rsync:
Por ejemplo, para copiar un solo archivo file.txt de ~ / Descargas al directorio del sistema remoto ~ / Documentos, el comando sería:
$rsync-v~/Descargas/file1.txt umara@192.168.72.164:~/DocumentosDe manera similar, para copiar el directorio ~ / Downloads / files en un sistema local con su subdirectorio y todo el contenido al directorio ~ / Downloads / samples en el sistema remoto:
$rsync-rv~/Descargas/archivos umra@192.168.72.164:~/Descargas/muestrasTambién puede copiar los archivos y directorios de la máquina remota a su máquina local. Por ejemplo, para copiar un archivo2.txt del sistema remoto al escritorio del sistema local:
$rsync-vumara@192.168.72.164:~/Descargas/file2.txt ~/Escritorio/Del mismo modo, para copiar un directorio del sistema remoto al sistema local
$rsync-rvumara@192.168.72.164:~/Descargas/muestra ~/Escritorio/pruebaTambién puede usar todas las opciones como –max-size, –min-size, –exclude y otras mientras copia archivos hacia / desde el sistema remoto.
Rsync es una gran herramienta para copiar archivos desde el origen al destino, ya sea de forma local o remota. Incluye un gran conjunto de opciones que le brinda flexibilidad y control mientras transfiere archivos hacia / desde el sistema remoto.