Extraido: http://www.uhurulabs.com/2012/01/configuracion-y-uso-de-rsync-contra-un-ubuntu-server/
rsync es una aplicación que se puede encontrar en vuestros sistemas Linux, MacOS o Windows y que permite sincronizar archivos y directorios entre dos máquinas de una red o entre dos carpetas de una misma máquina. Su uso es sencillo y es ideal para mantener al día copias de elementos utilizados por varias personas, hacer copias de seguridad de nuestros datos de manera rápida y segura o mantener actualizada nuestra página web.
Puede funcionar de dos maneras:
1.a) Instalar rsync. En general viene instalado de serie, y más en una versión server de Ubuntu, pero si no fuera así simplemente instálalo con Synaptic o mediante:
A continuación aparecen la definición y características del módulo. Los elementos más importantes son:
. Este fichero almacena parejas usuario:contraseña, que hacen relación a los usuarios definidos en el fichero “/etc/rsyncd.conf”. En nuestro caso podría ser algo como esto:
1.d) Una vez configurado, sólo nos queda arrancarlo. Para ello lo mejor es utilizar xinetd, otro de los demonios que podemos encontrar en linux y que permite gestionar las conexiones de otros demonios bajo demanda.
Para ello lo primero es instalarlo (si es que no lo tienes aún):
Caso 2. La segunda opción consiste en la utilización del terminal remoto seguro ssh.
El proceso de creación de clave pública y privada y configuración del terminal escapa de este tutorial.
En este caso no es necesaria la configuración del demonio en el servidor, tan sólo que rsync esté instalado en él. Para ejecutar la sincronización:
rsync es una aplicación que se puede encontrar en vuestros sistemas Linux, MacOS o Windows y que permite sincronizar archivos y directorios entre dos máquinas de una red o entre dos carpetas de una misma máquina. Su uso es sencillo y es ideal para mantener al día copias de elementos utilizados por varias personas, hacer copias de seguridad de nuestros datos de manera rápida y segura o mantener actualizada nuestra página web.
Puede funcionar de dos maneras:
- Instalando un daemon (un servicio) en nuestro servidor (donde tenemos los elementos a sincronizar) al cual accederemos mediante el protocolo rsync.
- Mediante un terminar remoto como SSH
1.a) Instalar rsync. En general viene instalado de serie, y más en una versión server de Ubuntu, pero si no fuera así simplemente instálalo con Synaptic o mediante:
sudo apt-get install rsync1.b) Hay que crear el fichero de configuración del daemon “/etc/rsyncd.conf”. En él definimos las caracterísiticas generales de la conexión, así como las de cada uno de los módulos o, para definirlo mejor, las posibles ubicaciones de sincronización. El fichero tendrá una forma similar a esta
max connections = 2 log file = /var/log/rsync.log timeout = 300 [nombremodulo1] comment = Carpeta de documentos personales sobre Linux path = /carpeta/sobre/la/que/sincronizo/los/documentos/personales read only = yes list = yes uid = usuario1 gid = usuario1 auth users = usuario1 secrets file = /etc/rsyncd.secrets [nombremodulo2] comment = Carpeta de documentos Uhuru path = /carpeta/sobre/la/que/sincronizo/los/documentos/uhuru read only = yes list = yes uid = nobody gid = nogroup auth users = usuario1 usuario2 secrets file = /etc/rsyncd.secretsAl principio del fichero se definen aquellas características generales de la conexión. En este caso aparecen el número de conexiones simultáneas, donde se va a ubicar el fichero log y el tiempo máximo de espera. En esta parte es posible indicar también algunas de las características que aparecen en los módulos para que todos ellos la hereden (salvo que se redefinan dentro de uno en concreto). Por ejemplo, en el código anterior, podríamos haber escrito en las características generales la configuración de secrets file o la opción list, ya que su valor es común para todos los módulos.
A continuación aparecen la definición y características del módulo. Los elementos más importantes son:
- comment: un comentario sobre que se sincroniza con ese módulo.
- path: el camino completo de la ubicación.
- uid: nombre del usuario con el que rsync realizar las acciones.
- gid: grupo con el que rsync realizará las acciones.
- auth users: usuarios a los que se les está permitido la sincronización. Estos usuario en principio no tiene porque coincidir con ningún usuario del sistema.
- secrets file: lo vemos en el apartado siguiente.
usuario1:mipassword1 usuario2:mipassword2Obviamente este fichero, al ser texto plano, ha de ser protegido contra “mirones”, ya que en caso contrario nuestras contraseñas quedan fácilmente accesibles. Es más rsync ni siquiera funcionará si no asignamos unos permisos adecuados a este fichero. Para ello:
sudo chmod 600 /etc/rsyncd.secretsEs decir, el propietario debe ser el root y sólo puede ser leído por él.
1.d) Una vez configurado, sólo nos queda arrancarlo. Para ello lo mejor es utilizar xinetd, otro de los demonios que podemos encontrar en linux y que permite gestionar las conexiones de otros demonios bajo demanda.
Para ello lo primero es instalarlo (si es que no lo tienes aún):
sudo apt-get install xinetd1.e) Configurar xinetd. Si no existe crea el fichero “/etc/xinetd.d/rsync” con el contenido siguiente.
service rsync { disable = no socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID }1.f) Comprobar el puerto por el que el servidor rsync escuchará. Para ello ves al fichero”/etc/services” y comprueba que la siguiente línea existe y no está comentada:
rsync 873/tcp1.g) Reinicia el daemon xinetd. Para ello:
sudo /etc/init.d/xinetd restart1.h) Ya tenemos el servidor funcionado. ¿Como lo usamos?. Sencillo, en local ejecutamos:
rsync -v --recursive --times --perms --links --delete /mi/carpeta/personal/local rsync://usuario1@miservidor/nombremodulo1donde estamos haciendo una sincronización recursiva, preservando fechas y permisos de los archivos origen, incluyendo vínculos, borrando archivos que fueron borrados en el directorio origen. Todo ello desde un directorio origen /mi/carpeta/personal/local y utilizando el protocolo rsync contra el servidor miservidor, con el usuario1 y utilizando el módulo nombremodulo1
Caso 2. La segunda opción consiste en la utilización del terminal remoto seguro ssh.
El proceso de creación de clave pública y privada y configuración del terminal escapa de este tutorial.
En este caso no es necesaria la configuración del demonio en el servidor, tan sólo que rsync esté instalado en él. Para ejecutar la sincronización:
rsync -v --rsh=/usr/bin/ssh --recursive --times --perms --links --delete /mi/carpeta/personal/local usuario1@servidor:carpeta/destino/servidorTags: backup, rsync, tutorial, Ubuntu
@ERROR: auth failed on module nombremodulo1
rsync error: error starting client-server protocol (code 5) at main.c(1534) [sender=3.0.9]
Cuando intento de un windows , reconoce la ruta pero también tengo problema con la autentificacion
el archivo rsyncd.secrets esta con los permisos correspondientes
salu2
Gracias!!
/media/Archivos a la carpeta
/media/Iomega
quiero que los archivos se copien sin los permisos del propietario, como debo escrivir el comando?
Gracias y saludos.
secrets file = /etc/rsyncd.secrets
por esta otra
secrets file = /etc/.rsyncd.secrets
y me funciono
muchas gracias por el tutorial, es muy bueno