Existe una utilidad en linux (desarrollada también para windows) llamada rsync.

Vía: wikipedia.org
. rsync es una aplicación de software para sistemas de tipo Unix que ofrece transmisión eficiente de datos incrementales comprimidos y cifrados. Mediante una técnica de delta encoding, permite sincronizar archivos y directorios entre dos máquinas de una red o entre dos ubicaciones en una misma máquina, minimizando el volumen de datos transferidos. Una característica importante de rsync no encontrada en la mayoría de programas o protocolos es que la copia toma lugar con sólo una transmisión en cada dirección. rsync puede copiar o mostrar directorios contenidos y copia de archivos, opcionalmente usando compresión y recursión.
En modalidad de “Daemon” servidor, rsync escucha por defecto el puerto TCP 873, sirviendo archivos en el protocolo nativo rsync o via un terminal remoto como RSH o SSH. En el último caso, el ejecutable del cliente rsync debe ser instalado en el host local y remoto.
Lanzado bajo la licencia GNU General Public License, rsync es software libre.
La buena noticia es que esta herramienta libre esta desarrollada tanto para Unix (Solaris) / Linux y Windows. Por lo que es una alternativa bastante interesante a costosos sistemas de pago (no libres) de backup y sincronización de directorios.
En ubuntu 9.10 ya viene instalado rsync.
Existe una interfaz gráfica para el uso de esta herramienta llamada Grsync. (No permite toda la potencia de rsync pero es una buena idea para ciertas situaciones)
Un script ejemplo de uso de rsync ( vía: http://bioinformatiquillo.wordpress.com/2008/06/16/grsync-gui-gtk-para-rsync/ )
#!/bin/bash
COMMAND=”rsync -r -t -p -o -g -x -v –progress –delete”
SOURCE=”/home/jose”
DESTINATION=”jose@servidor_destino:/home/jose/backup”
DIR=”Documentos”
echo “$DIR”
eval $COMMAND “$SOURCE/$DIR/” “$DESTINATION/$DIR”
Otro ejemplo (vía: http://www.ubuntu-es.org/index.php?q=node/60946 ) bastante interesante para hacer copias locales y en remoto:
. RSYNC COPIA LOCAL
rsync -altgvb /var/www/ /home/gabo/Respaldos/backup_www
RSYNC SSH – COPIA A UN SERVER.
rsync -e ssh -altgvb /leo/ root@192.168.1.4:/home/leo/CMO
- Hasta aqui todo esta bien, pero si necesitamos hacer esto automaticamente cada hora mediante cron tenemos que lograr que ssh no nos pida contraseña. Para lograrlo realizamos el siguiente procedimiento:
Creamos una llave publica y una llave privada:
ssh-keygen -tdsa
Presionando solo enter en todas las preguntas que el comando anterior requiere vamos a tener nuestra llave publica en /home/usuario/.ssh/id_dsa.pub. Copiamos esta llave al servidor 192.168.1.4:
cd /home/usuario/.ssh/
cat id_dsa.pub | ssh bot@192.168.1.4 “cat – >> /home/bot/.ssh/authorized_keys”
Probamos que todo funcione haciendo:
ssh -l bot 192.168.1.4
Y un último ejemplo: Como sincronizar tu pendrive con una carpeta de tu disco duro, para tener copias de seguridad:
Referencias:
* http://es.wikipedia.org/wiki/Rsync
* Página oficial de rsync
* Using rsync on windows
* http://bioinformatiquillo.wordpress.com/2008/06/16/grsync-gui-gtk-para-rsync/
* http://www.opbyte.it/grsync/
* http://www.ubuntu-es.org/index.php?q=node/60946
* Copia de seguridad del pendrive con rsync