Transferencia de archivos por red con rsync
Clase 37 de 43 • Curso de Programación en Bash Shell
Contenido del curso
Programación Shell Básica
Script Interactivos
Condicionales
Iteración
Archivos
Empaquetamiento
Funciones
Cierre del curso
Optimiza la transferencia de archivos en red con empaquetamiento y el comando rsync. La explicación muestra cómo enviar una carpeta completa de forma eficiente, aprovechando características como compresión y encriptación, y un flujo similar a SSH. Ideal para respaldos y para mantener copias en otra máquina sin pérdidas.
¿Por qué usar rsync y empaquetamiento para transferir archivos por la red?
El objetivo es agilizar la velocidad de transferencia al enviar una carpeta completa en lugar de archivo por archivo. Con rsync se organiza el envío, se minimizan tiempos y se asegura la integridad de la información. Además, se trabaja con un esquema de conexión familiar: usuario@host con autenticación por password.
- Mejora la velocidad de transferencia al enviar todo el conjunto de scripts como un bloque lógico.
- Permite una operación similar a SSH con usuario@host:destino.
- Se mencionan compresión y encriptación dentro del enfoque de empaquetamiento.
- Facilita respaldos en otro equipo para mayor seguridad.
¿Cómo crear el script Packaged SSH con rsync paso a paso?
Se parte del script 28 (compresión con ZIP y clave) y se crea el script 29 llamado “Packaged SSH” para transferir por la red usando rsync. La idea: capturar datos de conexión, avisar la acción al usuario y ejecutar el envío desde el directorio actual hacia una ruta remota.
¿Qué datos solicita el script: host y usuario?
Se piden dos valores esenciales: el host y el usuario. Ambos se guardan en variables para construir el destino remoto en rsync.
read -p "Ingrese el host: " host
read -p "Ingrese el usuario: " usuario
¿Cómo mostrar un mensaje con echo -e?
Se utiliza echo -e para imprimir un aviso con saltos de línea y confirmar que se empaquetará la carpeta y se transferirá según los datos ingresados.
echo -e "En este momento se procederá a empaquetar la carpeta\ny transferirla según los datos ingresados."
¿Qué comando rsync se ejecuta y hacia qué ruta?
Se arma el comando rsync con opciones mencionadas en la explicación: -A -B -Z. El origen es el directorio actual mediante pwd, y el destino usa el patrón usuario@host:ruta.
rsync -A -B -Z "$(pwd)/" "$usuario@$host:/Users/Martosre/Downloads/Platzi"
- Origen: el directorio actual obtenido con
pwd. - Destino:
$usuario@$host:/Users/Martosre/Downloads/Platzi. - Patrón de envío:
usuario@host:destino.
¿Qué validar durante la transferencia y cómo verificar el resultado?
Antes de ejecutar, se revisa la IP y la carpeta destino en el equipo remoto. En el ejemplo se comprobó la IP como 192.168.10.38 y la ruta /Users/Martosre/Downloads/Platzi. Durante la ejecución, se solicita el password del usuario remoto y se observa el progreso de transferencia. Finalmente, se valida con ls que la carpeta y los archivos llegaron correctamente.
- Confirmar IP de destino: 192.168.10.38.
- Confirmar directorio remoto:
/Users/Martosre/Downloads/Platzi. - Autenticación por password al conectar con usuario@host.
- Verificar con
lsque aparece la carpeta (por ejemplo, Shell Course) y sus archivos. - Beneficio adicional: contar con más de un respaldo en diferentes máquinas.
¿Te gustaría automatizar más tareas de transferencia o respaldo con rsync y SSH? Comparte tus dudas o casos de uso y seguimos la conversación.