Sistema de Soporte » Manuales y Preguntas Frecuentes ( FAQ ) » Montando rsync
 Login [Recuperar contraseña] 
Email:
Contraseña:
Recordarme:
 
 Buscar
Realice consulta a hostineitor
 Opciones de Articulo
 Montando rsync
Respuesta Vamos a ejecutar el demonio de rsync a partir del superdemonio xinetd, para lo cual debemos asegurarnos de que está asociado al puerto 873/tcp dentro del archivo /etc/services. Para ello hay que comprobar que el archivo contiene un línea como la siguiente:
rsync 873/tcp

Una vez hecho esto debemos activar el servicio dentro de xidentd. Si existe el archivo /etc/xinetd.d/rsync bastará con activarlo poniendo la entrada disable a no, en caso de que el archivo no exista se puede crear con el siguiente contenido:

service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}

Con esto ya tendríamos preparado el servidor de rsync para escuchar las peticiones entrantes, únicamente nos queda configurar el servicio y relanzar xinetd para que comience a trabajar.

Para preparar la configuración del servidor debemos crear dos archivos, /etc/rsyncd.conf y /etc/rsyncd.secrets. El primero de ellos contiene la configuración de los módulos exportados, mientras que el segundo contiene la información de los usuarios que tienen permisos para realizar conexiones. Estos son los contenidos de cada archivo:

etc/rsyncd.conf

uid = nobody
gid = nobody
use chroot = yes
max connections = 1
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid

[www]
path = /www
comment = datos de www
use chroot = true
max connections = 1
read only = true
list = false
uid = nobody(usuario de directorio)
gid = nobody(grupo de directorio)
auth users = remote_user
secrets file = /etc/rsyncd.secrets
strict modes = true
hosts allow = 111.111.111.111

[mysql]
path = /var/lib/mysql
comment = datos de mysql
use chroot = true
max connections = 1
read only = true
list = false
uid = mysql
gid = mysql
auth users = remote_user
secrets file = /etc/rsyncd.secrets
strict modes = true
hosts allow = 111.111.111.111

/etc/rsyncd.secrets

remote_user:thepass

El archivo rsyncd.conf se puede observar que se compone de una primera parte en la que se configuran parámetros genéricos del servidor, y una segunda parte donde se muestra la configuración exacta de cada módulo exportado. En la configuración se ha puesto por defecto que se use como usuario local nobody, y que se haga bajo un entorno chroot por seguridad. Esto hace que por defecto cuando nos conectemos a un módulo lo hagamos con ese usuario, y no podamos salir de él a otras zonas del servidor. Dentro de cada módulo se indica la carpeta a la que apunta, se dice que únicamente se pueden leer archivos, mediante read only = true, pero no modificarlos ni crear nuevos. Se dice también que si se socilita un listado de módulos al servidor estos estén ocultos, que se utilice como datos de conexión un usuario de nombre remote_user cuyo password está en el archivo /etc/rsyncd.secrets, y que únicamente se permitan conexiones desde la ip 111.111.111.111

En la configuración del segundo módulo se puede ver como se ha cambiado el usuario por defecto de nobody a mysql, con el fin de poder realizar las copias de las bases de datos, ya que normalmente el usuario nobody no tendrá permiso para leerlas.

Estos deberían ser lor permisos para ambos archivos:

-rw-r--r-- 1 root root 472 Dec 31 14:01 /etc/rsyncd.conf
-rwx------ 1 root root 21 Dec 31 14:00 /etc/rsyncd.secrets

Fuente: http://www.eslomas.com/index.php/archives/2005/01/31/como-realizar-copias-de-seguridad-con-rsync

Hay multitudes de opciones de configuración que nos permiten configurar el servidor para nuestras necesidades específicas, más información en la página de man de rsyncd.conf.

Una vez configurado el servidor, deberíamos reiniciar xinetd con el fin de poder conectarnos al servidor de rsync

bash# /etc/rc.d/init.d/xinetd restart

Ahora ya podemos comenzar a configurar el equipo cliente.
Configuración del Cliente

Dentro de la carpeta /usr/local/backups creamos el archivo password.rsync, en el que escribimos el password con el que queremos conectarnos al servidor rsync: thepass

Debemos darle permisos de sólo lectura para el usuario que vaya a ejecutar la copia.

bash# chmod 700 password.rsync

Ahora ya podemos probar la conexión al servidor, para ello lo más sencillo es pedirle que nos dé un listado de lo exportable en uno de de los módulos, por ejemplo:

bash# rsync --password-file=/usr/local/backups/password.rsync rsync://remote_user@dominio.com/www

Con esta orden el servidor nos contestará con el conjunto de archivos y carpetas disponibles en el módulo www. Si quisiéramos que lo hiciera de manera recursiva, recorriendo las subcarpetas, deberíamos haberle pasado el parámetro -r. Hay que prestar atención a como acaba la información que pedimos al servidor. En este caso le estamos pidiendo www, que es diferente que ponerle una barra al final em>www/. Si realizamos una copia a local a partir de la primera opción se nos crearía una carpeta www y dentro el contenido de la misma, sin embargo con la segunda opción se copiaría directamente el contenido de la carpeta.

Si el servicio no funciona disponemos de la opción de mirar el log del servidor /var/log/rsyncd.log para investigar las posibles causas del problema. Conviene asegurarse de que el servicio está disponible en xinetd reiniciando éste si es necesario, y que los datos de usuario son correctos.


Copia de ficheros actualizados:
rsync -arzvl rsync://remote_user@213.251.147.9/www /var/www/vhosts/dominio.com/httpdocs


Detalles del Articulo
Código del Articulo: 74
Fecha de Creación: 18 Feb 2007 01:06 PM

 Esta respuesta me fue util  Esta respuesta no me fue util

 Volver