Sincronización bidireicional de ficheros nuna rede llocal

Tan mui de moda los servicios de sincronización de ficheros al travies de la ñube (forma “cool” de dicir sirvidores), ente otros tenemos Dropbox o Ubuntu One. Son servicios mui cómodos que val pa sincronizar equipos remotos facilmente gracies a internet, sicasí namás que valen pa pequeños ficheros o semeyes, porque cuando queremos sincronizar grandes cantidaes de datos (falamos de munchos GB o TB) internet nun ye’l meyor mediu pa facelu nun país con una coneutivida tan probe onde los que venden “ventayes de la fibra óptica” llévente a casa un cable coaxal…

Si los equipos a sincronizar tan nuna rede llocal Unison (y SSH) ye una solución, rápida y fácil.

Pa esplicar facilmente el procesu, vamos dicir que queremos sincronizar PC1 (dende onde llanzaremos les sincornizaciones) y PC2

Asumimos que los equipos tienen IP fixa (nun voi esplicar esto) y la sincronizción ye ente ficheros d’ún único usuariu.

Les IP ficticies que vamos usar son: PC1 -> 111.111.111.111. y PC2 -> 222.222.222.222

El usuariu llámase “usuariu” (orixinal)

Tendréis que cambiar estos datos polos vuesos.

Instalamos ssh y unison tanto en PC1 como en PC2

$sudo apt-get install unison ssh

Pa más comodidá vamos instalar una GUI en PC1 cola que fadremos un perfil de sincronización

$sudo apt-get installl unison-gtk

Agora abrimos l’aplicación, en PC1, y saldrános una venta pa crear el perfil, calcamos en amestar metemos los datos que nos pide, primero un nome de perfil y depués en “Synchronization kind:” esbillamos “Using SSH” en “Host:” ponemos la IP de PC2 “222.222.222.222” y en “User:” ponemos “usuariu”, y marcamos “Enable compression” pa que tresfiera los ficheros comprimidos.

Nel siguiente paso esbillamos los directorios en llocal “usuariu” (por exemplu) y en remotu “/home/usuariu”.

Si les sincronizaciones les faes con sistemes FAT esbilla la opción “Synchronization involving a FAT partition” (nun ye’l casu, pero ye util si quies sincronizar el to equipu con un llápiz USB por exemplu)

Cuando acabes tendremos algo asemeyáu a esto:

Calcamos en “Abrir” pedirános la clave d’usuariu y restolará a la gueta de diferencies, comprobamos les direiciones de la sincronización y calcamos “Go” pa sincronizar por primera vez.

Con esto ya podríamos sincronizalos, pero vamos automatizalu un poco… podemos executar unison dende cron, pero yo preferí facelo namás cuando anicio sesión, y calcando nun llanzador. Opciones que vamos dar nos dos equipos.

Lo primero que vamos facer ye editar /etc/hosts pa nun tener que andar escribiendo les IP a cada poco, executamos:

$ sudo nano /etc/hosts

o

$ sudo gedit /etc/hosts

y ponemos en PC1 “PC2       222.222.222.222”

y en PC2 “PC1       111.111.111.111”

Agora pa SSH nos identifique automaticamente creamos claves públiques y privaes con:

$ ssh-keygen

Ponemos una clave pa protexela (si queremos) y les copiamos a cada máquina,

en PC1

$ ssh-copy-id usuariu@PC2

en PC2

$ ssh-copy-id usuariu@PC1

Estes órdenes serán les últimes nes que tendremos de dar la clave d’usuariu.

Agora pa automatizar la sincronización, y controlala facemos estos scripts col nome “sincronizar”,

En PC1

#!/bin/sh
HOST_REMOTU=PC2
USUARIU=usuariu
#comprobamos si l’equipu remotu ta conectáu
ping -c 1 $HOST_REMOTU
#si ta conectáu entrugamos si quies sincronizar
if [ $? -ne 1 ]; then
zenity –question –title=”¿Sincronizar?” –text=”¿Quies sincronizar los equipos agora?”
REMPUESTA=$?
#Si la rempuesta ye que sí, sincronizamos y avisamos al acabar
if [ $REMPUESTA -eq 0  ] ; then
unison -auto -batch
zenity –info –title=”Sincronización completa” –text=”Completóse la sincronización, yá puedes apagar l’equipu.”
fi
fi

En PC2

#!/bin/sh
HOST_REMOTU=PC1
USUARIU=usuariu
#comprobamos si l’equipu remotu ta conectáu
ping -c 1 $HOST_REMOTU
#si ta conectáu entrugamos si quies sincronizar
if [ $? -ne 1 ]; then
zenity –question –title=”¿Sincronizar?” –text=”¿Quies sincronizar los equipos agora?”
REMPUESTA=$?
#Si la rempuesta ye que sí, sincronizamos y avisamos al acabar
if [ $REMPUESTA -eq 0  ] ; then
ssh $USUARIU@$HOST_REMOTU unison -auto -batch
zenity –info –title=”Sincronización completa” –text=”Completóse la sincronización, yá puedes apagar l’equipu.”
fi
fi

Copiamos los ficheros onde no molesten (onde nun tean sincronizaos o poniendo-yos nomes distintos) y damos-yos permisos d’execución.

Agora vamos al menú d’apagáu del equipu y calcamos en “Aplicaciones nel aniciu” y amestamos los nuesos scripts, así cada vez qu’aniciemos sesión si l’otru equipu ta conectáu entrugarános si queremos sincronizalos o non.

Pa executar los scripts manualmente podemos facer un llanzador, necesitaremos instalar gnome-panel (pero ensin gnome) pa eso usamos esti comando:

$ sudo apt-get install –no-install-recommends gnome-panel

Y pa facer un llanzador nel escritoriu (por exemplu) ponemos

$gnome-desktop-item-edit ~/Escritoriu/ –create-new

Ponemos-y la ruta del script y a correr, calcando nel llanzador podremos sincronizar los equipos. Yo fice el llanzador na carpeta onde meto tolos scripts y depués arrastelu a la barra de llanzadores de Unity.

2 comentarios al rodiu de “Sincronización bidireicional de ficheros nuna rede llocal”

  1. paparresolla diz:

    Nun me doi aludíu polo de “llevar a casa un coaxal”

    Nun me doi por aludíu…

    Nun me doi por aludíu.. non… nun voi cayer nesa baxeza, soi un tíu con xacíu, posáu, de xeitu bonal y pacetible. Ye más… dame igual, voi facer como que nun lo oyí.

    Pero.. gondiós,

    SEDRÁS CABRITU!!! 😀

  2. Dangerous Piper diz:

    Les coses como son… XD