Articles

Cómo usar el Comando rsync para Copiar Archivos en Ubuntu

rsync es una herramienta para copiar archivos. rsync se utiliza para copiar archivos de su computadora a una máquina remota, de una máquina remota a su computadora, de un directorio a otro directorio en el mismo equipo, de su computadora a un disco duro externo o recurso compartido de red, etc. rsync también se puede usar para realizar copias de seguridad incrementales.

En este artículo, voy a mostrarle cómo usar el comando rsync para copiar archivos y directorios y realizar copias de seguridad incrementales. Usaré Ubuntu para la demostración. Pero cualquier distribución moderna de Linux debería funcionar bien. Así que empecemos.

Instalación de rsync:

rsync ya debería estar instalado en Ubuntu. Pero, si no está instalado en su computadora por alguna razón, puede instalarlo fácilmente desde el repositorio oficial de paquetes de Ubuntu con el siguiente comando:

$ sudo apt install rsync-y

del comando rsync:

El formato básico del comando rsync es,

options opciones de rsync destino de origen

  • el origen puede ser un archivo, un directorio o una ruta de red.
  • el destino puede ser un directorio o una ruta de red.
  • rsync tiene muchas opciones. Puede cambiar el comportamiento de rsync utilizando estas opciones. Echaremos un vistazo a algunas de las opciones más comunes en el camino.

Cuando usa rsync, necesita saber lo siguiente:

  • Si coloca un / después del nombre del directorio en el origen de rsync, como myfiles/, significa copiar todos los archivos del interior del directorio solo al destino.
  • Si no coloca un / después del nombre del directorio en el origen de rsync, como myfiles, rsync copiará todos los archivos del directorio al destino, incluido el directorio.
  • Si escribe una ruta de directorio de destino que no existe, rsync la creará automáticamente según sea necesario.

Copia de seguridad de archivos y directorios locales con rsync:

Puede copiar archivos de un directorio a otro en su computadora muy rápidamente con rsync.

Por ejemplo, digamos que tiene algunos archivos importantes en el directorio ~/Downloads. Ahora, desea hacer una copia de seguridad de todos los archivos del directorio ~/Downloads a su unidad USB / dev / sdb1 montada en el directorio / mnt / myusb.

Hagamos algunos archivos ficticios en el directorio ~/Downloads.

touch touch ~ / Downloads / test{1..100}

Ahora, copie todos los archivos desde el ~/Descargas directorio /mnt/myusb directorio con el siguiente comando rsync:

$ rsync -avzh ~/Downloads/ /mnt/myusb

se deben copiar Los archivos.

Como puede ver, los archivos están en el directorio /mnt/myusb directorio.

también puede copiar todo el ~/Descargas directorio para su unidad flash USB de la siguiente manera:

$ rsync -avzh ~/Descargas /mnt/myusb

Como puede ver, todo el directorio se copian en la unidad USB.

de Nuevo, si desea copiar todos los archivos de la ~/Descargas directorio a otro directorio (digamos mydownloads/) en su unidad flash USB, ejecutar rsync como sigue:

$ rsync -avzh ~/Downloads/ /mnt/myusb/mydownloads

Como puede ver, los archivos se copian correctamente a la unidad USB.

Copia de seguridad de archivos y directorios remotos con rsync:

Con rsync, puede copiar archivos y directorios de un servidor remoto a su sistema de archivos local o unidad usb para realizar copias de seguridad. También puede copiar archivos y directorios de su sistema de archivos local a su servidor de copia de seguridad remoto. rsync utiliza SSH para copiar archivos y directorios a / desde el servidor remoto.

Debe tener el paquete de servidor SSH (openssh-server en Ubuntu) y el paquete rsync instalados en el servidor remoto si desea usar rsync con fines de copia de seguridad de archivos.

Por ejemplo, digamos que desea copiar todos los contenidos (incluido el directorio) del directorio /www desde su servidor remoto www.example1.com a su unidad USB montada en la ruta / mnt / myusb en su sistema de archivos local.

Para ello, puede utilizar el siguiente comando rsync:

$ rsync -avzh [email protected]:/www /mnt/myusb

tenga en cuenta: Aquí, root es el nombre de usuario remoto, www.example1.com es el nombre DNS del servidor remoto y / www es una ruta de directorio en el servidor remoto. También puede usar la dirección IP del servidor remoto en lugar del nombre DNS si lo desea.

Usted puede ver el mensaje siguiente si usted está conectando al servidor remoto por primera vez. Simplemente escriba sí y luego presione < Enter>.

Ahora, escriba la contraseña para el usuario remoto (en mi caso es de la raíz) y pulse <Entrar>.

Todos los archivos y directorios dentro del directorio /www, incluido el directorio /www, deben copiarse en la unidad USB, como puede ver en la captura de pantalla a continuación.

también puede copiar los archivos en su sistema de archivos a su servidor remoto con rsync.

En el ejemplo anterior, ha tomado una copia de seguridad del directorio /www en el servidor remoto. Ahora, digamos que algunos de los archivos en el servidor remoto están dañados y desea recuperarlos de la copia de seguridad.

Para hacer eso, ejecute el comando rsync de la siguiente manera:

$ rsync-avzh / mnt / myusb / www/ [email protected]:/www

Ahora, escriba la contraseña de su servidor remoto y pulse <Entrar>.

se deben copiar Los archivos de su sistema de archivos local al servidor remoto.

Tomar copias de seguridad incrementales con rsync:

En este tipo de copia de seguridad, los directorios de origen y destino se mantienen sincronizados. Si se agrega algún archivo al directorio de origen, también se agrega al directorio de destino. De la misma manera, si se elimina cualquier archivo o directorio del directorio de origen, también se elimina del directorio de destino.

rsync es una gran herramienta para realizar copias de seguridad incrementales.

Digamos que tienes un directorio ~ / cloud en el directorio PERSONAL de tu usuario. Ahora, desea realizar una copia de seguridad incremental del directorio en una unidad USB montada en la ruta / mnt / usb1 en un servidor remoto backup.example.com.

NOTA: Debe tener los paquetes openssh-server y rsync instalados en su servidor remoto para que esto funcione.

A tomar la copia de seguridad incremental de la ~o en la nube, ejecute el siguiente comando:

$ rsync -avzh –delete -, los progresos ~/nube/ [email protected]:/mnt/usb1/backup

Ahora, escriba la contraseña del usuario remoto y pulse <Entrar>.

El contenido de ~/directorio de nube deben ser copiados a la memoria USB en el servidor remoto.

Como puede ver, todos los archivos se copian en la unidad USB montada en el control remoto de copia de seguridad del servidor.

Ahora, eliminemos un archivo del sistema de archivos local y veamos qué sucede.

rm rm ~ / cloud / packages.txt

Ahora, utilice rsync para sincronizar de nuevo los directorios con el mismo comando que antes.

$ rsync -avzh –delete -, los progresos ~/nube/ [email protected]:/mnt/usb1/backup

Como puede ver, el archivo de paquetes.txt también se elimina de la unidad USB montada en el servidor de copia de seguridad remota.

Dónde Ir:

Puede encontrar más información sobre rsync en la página de manual de rsync. La página de manual de rsync tiene una descripción detallada de todas las opciones de rsync. Te recomiendo que lo compruebes.

Puede acceder a la página de manual de rsync con el siguiente comando:

man man rsync

Así es como se usa rsync para copiar archivos y realizar copias de seguridad incrementales en Ubuntu. Gracias por leer este artículo.