Copia y copia de seguridad de archivos y carpetas mediante la utilidad Rsync

Más sobre Rsync

Rsync es una herramienta rápida y versátil para copiar archivos y carpetas. La utilidad puede copiar datos tanto localmente como a otros hosts, incluyendo Cloud Storage de Introserv.
Las opciones de la utilidad le permiten controlar muchos aspectos de la copia y duplicación de datos.
Una de las principales características es la posibilidad de comprimir los datos durante el envío, lo que permite acelerar el proceso de copia entre servidores.
Otra ventaja es la excepción al copiar archivos idénticos. Por lo tanto, sólo se copiarán o transferirán archivos diferentes, lo que sin duda ahorrará tiempo a la hora de sincronizar directorios de gran tamaño.

Opciones de utilidades

Veamos ejemplos del uso de Rsync para copiar archivos y directorios al Cloud Storage remoto de Introserv utilizando el protocolo SSH. ¡Importante! Comandos similares, sólo especificando el servidor de destino, le permitirá copiar directorios y archivos a cualquier servidor remoto a través de SSH.

Echemos un vistazo a algunas de las principales opciones de utilidad que se utilizarán con más frecuencia. Una lista más detallada de las opciones disponibles está disponible en la documentación man( comandoman rsync ):

-v - muestra información detallada sobre el proceso
-c - comprueba las sumas de comprobación de los archivos
-q - información mínima
-a - modo de archivo
-R - rutas relativas
-y - no sobrescribir archivos más recientes
-b - crear una copia de seguridad
-l - copiar enlaces simbólicos
-L - copia el contenido de los enlaces
-H - copiar enlaces duros
-g - guardar grupo
-p - conservar los permisos de los ficheros
-t - guardar tiempo de modificación
-x - trabajar sólo en esta SL
-e - usar otro protocolo de transporte (por ejemplo, ssh)
-z - comprimir archivos antes de transferirlos
--delete - elimina ficheros que no están en el origen
--exclude - excluye ficheros
--recursive - enumera directorios recursivamente
--no-recursive - desactiva la recursividad
--progress - muestra el progreso de la transferencia de archivos
--stat - mostrar estadísticas de transferencia
--max-size - tamaño máximo de fichero a transferir
--bwlimit - límite de velocidad para la transferencia de archivos

Breve explicación de la sintaxis

rsync -az --progress /home/usuario/prueba.archivo boxxxx@boxxxxx.introserv.cloud:/remote_folder/

-az --progress opciones que indican que es necesario archivar el fichero transferido, comprimirlo antes de la transferencia y también mostrar el progreso de la copia en la pantalla;

/home/usuario/prueba.archivo: es la ruta al archivo y el propio archivo que debe transferirse;

boxxxx@boxxxxx.introserv.cloud: este es el recurso de destino (en nuestro ejemplo es el almacenamiento en la nube, pero también puede ser un servidor remoto) boxxxx es el nombre de usuario, después del signo @ es el nombre del recurso o la dirección IP del servidor remoto;

/carpeta_remota/ es una carpeta en un recurso remoto. En nuestro ejemplo - en Introserv Cloud Storage.

Copiar un archivo a una carpeta en un almacenamiento remoto

rsync -az --progress /home/user/Desktop/test.file boxxxxx@boxxxxx.introserv.cloud:/remote_folder/

Se le pedirá una contraseña para conectarse al almacenamiento:

Copia y copia de seguridad de archivos y carpetas mediante la utilidad Rsync

Introduzca la contraseña y continuar, verá el progreso y la velocidad de transferencia de archivos:

Copia y copia de seguridad de archivos y carpetas mediante la utilidad Rsync

Copiar carpeta a carpeta en un almacenamiento remoto

Preste atención a las barras en las líneas de la carpeta de origen y la carpeta de destino. La ausencia de una barra en la carpeta de origen indica que queremos transferir recursivamente la carpeta local Desktop con todo su contenido a la carpeta remote_folder

rsync -azr --progress /home/user/Desktop boxxxx@boxxxx.introserv.cloud:/remote_folder/

Verá que se transfiere el directorio y todos los archivos que contiene:

Copia y copia de seguridad de archivos y carpetas mediante la utilidad Rsync

Copiar el contenido de una carpeta local a una carpeta de un almacenamiento remoto

Preste atención a la barra al final de la carpeta de origen. Su presencia indica que la utilidad debe copiar el contenido de la carpeta local a una carpeta del almacenamiento remoto.

rsync -avzr --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

Verá el progreso y la velocidad de copia:

Copia y copia de seguridad de archivos y carpetas mediante la utilidad Rsync

Copiar una carpeta de un almacenamiento remoto a una carpeta del servidor local

Utilizando Rsync, puede iniciar una copia de una carpeta desde un almacenamiento remoto. El comando tiene el siguiente aspecto:

rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder /home/user/Desktop/

Verá el progreso y la velocidad de copia de una carpeta remota a una carpeta del servidor local:

Copia y copia de seguridad de archivos y carpetas mediante la utilidad Rsync

Copiando el contenido de una carpeta desde un almacenamiento remoto a una carpeta del servidor local

Aquí también merece la pena prestar atención a la barra al final de la ruta de la carpeta de origen. Su presencia indica que sólo hay que copiar el contenido de la carpeta

rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder/ /home/usuario/Escritorio/

Copia y copia de seguridad de archivos y carpetas mediante la utilidad Rsync

Copiar el contenido de una carpeta excluyendo y/o incluyendo archivos

La utilidad permite especificar explícitamente qué archivos transferir y cuáles deben excluirse. Para ello, utilice las opciones --include y --exclude.

rsync -azr --progress --include 'test.file' --exclude 'test.file2' /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

Verá que sólo se transfiere un archivo, el especificado por la opción --include. Tenga en cuenta que las opciones include y exclude pueden utilizarse por separado

Copia y copia de seguridad de archivos y carpetas mediante la utilidad Rsync

Copiar sólo los archivos que sean distintos de los de la carpeta de destino

Para cancelar la copia de archivos idénticos, debe utilizar la opción -c para comprobar las sumas de comprobación de los archivos. Esto le permitirá excluir del proceso de copia aquellos ficheros que ya se encuentren en la carpeta de destino

rsync -azrс --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

Verá que sólo se copiaron 3 archivos a la carpeta remota, a excepción del archivo test.odt, que ya se encuentra en el almacenamiento remoto:

Copia y copia de seguridad de archivos y carpetas mediante la utilidad Rsync

Uso de Rsync sobre SSH con un puerto SSH no estándar

Para transferir archivos desde/a un servidor con un puerto SSH modificado, utilice la opción -e 'ssh -p número_de_puerto' .

El comando para copiar un archivo a un servidor en el que el puerto SSH se ha cambiado a 44 tendrá el siguiente aspecto:

rsync -azrс --progress -e 'ssh -p44' /home/user/Desktop/ user@server_ip:/remote_folder/