domingo, 4 de marzo de 2012

Sincronización de carpetas con rsync vía SSH


Vamos a sincronizar carpetas entre dos máquinas Linux, de manera parecida a como lo hacemos con DropBox. Pero queremos hacerlo a través de la red y utilizando el servicio SSH.

Para ello, necesitaremos tener instalado un servidor SSH en el equipo que recibirá la información (Openssh-server) . Ponemos en funcionamiento el servicio SSH y dejamos esa máquina esperando.

Nos vamos a la máquina Linux que tiene la información original, que suponemos estará en una carpeta del home u otra ubicación. Abrimos una consola de comandos y tecleamos por ejemplo:

rsync -avz /home/usuario/ akenon@192.168.1.52:/home/akenon/recipiente

Donde:
/home/usuario - es la carpeta origen, es decir, desde la que queremos sacar la información hacia la otra máquina.
akenon - es un usuario válido en la máquina destino.
@ - es el separador entre ese usuario y la IP de la máquina destino.
192.168.1.52 -  es la IP de la máquina destino (La que tiene el servicio SSH activo)
:/home/akenon/recipiente - con los dos puntos indicamos que lo que viene detrás es la ruta de la carpeta que recibirá los datos de la sincronización, en la máquina destino.

Lógicamente, esta explicación puede cambiar si las carpetas están en otras ubicaciones y si se tiene permisos sobre ellas. Vosotros mismos.

Si todo va bien, se llevará a cabo la sincronización de carpetas sin problemas.

Para complementar la información indicada anteriormente, pásate por los siguientes enlaces y aclararás más de un concepto:



Enviar emails desde consola Ubuntu (ssmtp)

Para poder enviar emails fácilmente desde consola de comandos de GNU/Linux con una cuenta de gmail, realizaremos los siguientes pasos:

1) sudo apt-get install ssmtp
2) Editamos el archivo /etc/ssmtp/ssmtp.conf y añadimos la configuración de la cuenta de correo electrónico que realizará los envios. Busca los elementos que aparecen a la izquierda del igual y, si estás utilizando una cuenta de gmail, añade a la derecha los datos que se muestran a continuación.

root=usuario@gmail.com
mailhub=smtp.gmail.com:587
rewriteDomain=
hostname=usuario de gmail sin gmail.con
AuthUser=usuario de gmail
AuthPass=tu_password
Eliminaremos también el carácter # que aparece antes de la línea que contiene FromLineOverride=YES

Nos posicionaremos al principio de este archivo de configuración y pondremos como primera línea:
UseSTARTTLS=YES


3) Editamos ahora el archivo /etc/ssmtp/revaliases y, siguiendo los ejemplos que aparecen comentados en su interior, añadiremos dos líneas iguales a las siguientes:

root:usuario@gmail.com:smtp.gmail.com:587
tu_usuario_en_Linux:usuario@gmail.com:smtp.gmail.com:587

de este modo estarás indicando a ssmtp que tanto el root, como tu usuario genérico de Linux tienen permiso para enviar correos a través de ssmtp.

4) Ok, ya tenemos configurado ssmtp. Ahora para enviar un email podemos teclear:
ssmtp dirección_destino@loquesea.com

El cursor se queda parpadeando y tendremos que indicar los elementos típicos de un mensaje de correo electrónico. Algo así:

Subject: esto es una prueba desde consola
<dejamos una línea en blanco>
Este es el cuerpo del mensaje de prueba escrito desde consola.
<Para finalizar el mensaje pulsaremos Ctrl+D y se enviará automáticamente>

5) Si quieres que el envío se realice sin interactividad, sólo tienes que preparar un archivo de texto en el que guardes en su interior (en el formato de email: From, Subject, Body,...) el contenido que desees y se lo pases al envío del mensaje. Por ejemplo, así:

ssmtp dirección_destino@loquesea.com < mensaje_correo.txt

Esto es todo, las posibilidades son innumerables cuando se trata de monitorizar servidores, supervisar copias de seguridad programadas, etc. Nuestros servidores nos avisarán de posibles incidencias  o de su actividad, descargándonos de su vigilancia contínua.