TIPS- Mover grandes volúmenes de datos entres servidores de forma segura

El comando rsync es muy rápido para copiar y permite que copiemos a través de SSH de manera segura de una PC para otra, además de que con los parámetros adecuados permite que la copia se pueda reiniciar si es interrumpida. Aquí tienen un ejemplo:

rsync -e ssh -agEvz /home/datos root@192.168.0.2:/data

Aquí lo que estamos haciendo es copiar desde nuestra PC la información de /home/datos para /data de una PC remota con IP 192.168.0.2 y a través del usuario root de esa PC remota.

Cuando pusimos el comando anterior se nos pide la contraseña del usuario root de la PC remota, luego se inicia la copia, si la misma es interrumpida puede ser reiniciada corriendo el mismo comando, y la copia se reinicia donde mismo se había quedado.

Esto es muy valioso para los administradores de servidores.

Ahora, si necesitamos hacer salvas diarias y tenemos un script que se configuró para que se ejecutara a una hora del día en específico podemos hacer que dos servidores se autentiquen sin tener que introducir el password manualmente, sino mediante la compartición de claves. Así el comando anterior pudiera correrse de madrugada y no requeriría de la intervención nuestra.

Pasos:

1. Generarr tu clave pública de ssh, esto se hace en la máquina cliente que va a salvar datos en un server

ssh-keygen -t rsa

Aprieta enter dos veces Eso te genera tu clave pública para ssh en tu carpeta personal en /.ssh/id_rsa.pub

2. Exportar para el servidor remoto tu clave pública

Ahora debes decirle al server donde vas a hacer las salvas, que importe esa clave pública tuya, esto permite que cuando vayas a sincronizar carpetas con rsync desde esta máquina local no te pida pass porque ya estará autorizada, gracias a que exportaste tu clave pública

ssh-copy-id -i ~/.ssh/id_rsa.pub user_en_elServer@IpdelServer

Ejemplo:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.2

Listo una vez que tengas esto puedes realizar salvas automáticas al servidor 192.168.0.2.
Las salvas las haríamos con el comando rsync tal y como se muestra al principio de este post.

¿De cuánta utilidad te ha parecido este contenido?

Armando Felipe Fuentes Denis

Director de Infraestructura en Guajiritos S.R.L.

Ver comentarios

  • En el ejemplo que pones, en caso de que sean carpetas debes añadir al final el simbolo "/" (trailing slash) para que sincronice ambas carpetas.

    Si es una copia "importante" es decir que te interesa que verifique los contenidos y no por fechas solamente debes usar la opción "-c" (checksum) que comprueba que los archivos sean los mismos, no importa que la fecha sea diferente. Esta opción hace que sea más lenta, pero en casos de información valiosa, bien vale la pena.

    Hay una opción que es de buena ayuda cuando son volumenes grandes de datos "--progress" que indica en todo momento ficheros restantes etc. También si usas una version de rsync moderna (requiere version 3.1.0 protocol version 31) probar la opción "--info=progress2" que da una idea del progreso global de la copia, ya que la primera mencionada en este párrafo es por cada fichero.

Compartir
Publicado por
Armando Felipe Fuentes Denis

Entradas recientes

Alta disponibilidad de sus base de datos con Percona XtraDB Cluster en Kubernetes

Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…

9 meses hace

Home automation (Parte 3) – ESPHome

Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…

1 año hace

Home automation (Parte 2) – Home Assistant

Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…

1 año hace

Home automation (Parte 1)

Desde hace varios meses vengo con la idea de automatizar la casa donde vivo. Poco…

1 año hace

Cocinando una imagen personalizada de OpenWRT

El artículo describe el uso para un caso particular de OpenWRT y la creación de…

1 año hace