Un tutorial sobre el uso rsync

Un tutorial sobre el uso rsync


Contenido
    
Introducción
    
¿Cómo funciona?
    
Configuración de un servidor
    
Usando rsync sí mismo
    
Rsync en la Red

Introducción

    Rsync es una utilidad pequeña y maravillosa que es increíblemente fácil de instalar en sus máquinas. En lugar de tener una sesión de secuencias de comandos FTP, o alguna otra forma de la escritura de transferencia de archivos - copias de rsync sólo los diferenciales de los archivos que se han cambiado, comprimido a través de ssh, y si quieres para la seguridad. Eso es un bocado -, pero es lo que significa:

        
Dif. - Sólo piezas reales cambiado de los archivos son transferidos, en lugar de todo el archivo. Esto hace que las actualizaciones más rápido, sobre todo en los vínculos más lentos, como los módems. FTP se transfiera el archivo completo, aunque sólo un byte cambiado.
        
Compresión - Las pequeñas piezas de diffs se comprime sobre la marcha, además le ahorra el tiempo de transferencia de archivos y la reducción de la carga en la red.
        
Secure Shell - La seguridad conciente de que por ahí le gustaría esto, y todos deberíamos estar usando. La corriente del rsync se pasa a través del protocolo SSH para cifrar la sesión en lugar de rsh, que también es una opción (y necesario si no se utiliza ssh - permitirá en el archivo / etc / inet.d y reiniciar el demonio de inet, si se ha deshabilitado por seguridad).

    
Rsync es bastante versátil como una herramienta de copia de seguridad / espejo, que ofrece muchas características más allá de lo anterior. Yo personalmente se utiliza para sincronizar los árboles de la web puesta en escena a los servidores de producción y copia de seguridad de las áreas clave de los sistemas de archivos, tanto de forma automática a través de cron y por un script CGI. Aquí están algunas características clave de los rsync:

        
Soporte para enlaces, dispositivos de copia, los dueños, los grupos y permisos
        
Excluir y excluir de las opciones similares a GNU tar
        
A modo de excluir a CVS para ignorar los mismos archivos que el CVS se ignoran
        
No requiere privilegios de root
        
Canalización de transferencias de archivos para reducir al mínimo los costos de latencia
        
Soporte para los servidores rsync anónimos o autenticados (ideal para la creación de reflejo)

¿Cómo funciona?


    
Debe configurar una máquina u otro de un par de ser un "servidor rsync" rsync ejecutando en modo demonio ("rsync - daemon" en la línea de comandos) y la creación de un archivo corto, fácil configuración (/ etc / rsyncd . conf). A continuación vamos a detallar un archivo de configuración de ejemplo. Las opciones son fáciles de entender, pocos en número - pero muy poderoso.

    
Cualquier número de máquinas con rsync instalado a continuación puede sincronizar y / o de la máquina que ejecuta el demonio de rsync. Usted puede usar esto para hacer copias de seguridad, sistemas de archivos, archivos de espejo distribuir o cualquier número de operaciones similares. A través del uso de la "algoritmo rsync" que transfiere únicamente los diferenciales entre los archivos (similar a un archivo de revisión) y luego la compresión de ellos - lo que queda es un sistema muy eficiente.

    
Para aquellos que son nuevos en un shell seguro ("ssh" para abreviar), usted debe usarlo! Hay una muy útil y muy thourough Primeros pasos con el documento de SSH disponible. También puede visitar el sitio Web de Secure Shell. O, simplemente pulse el sitio maestro de FTP en Finlandia y enganchar por sí mismo. Proporciona una conexión segura y encriptada "tubo" para su tráfico de red. Usted debe usarlo en vez de telnet, rsh o rlogin y utilizar el reemplazo de "SCP" comando en lugar de "RCP".

Configuración de un servidor


    
Debe configurar un archivo de configuración en la máquina destinada a ser un servidor de hosting y ejecutar el binario en modo demonio rsync. Incluso sus máquinas cliente rsync rsync puede ejecutar en modo demonio para la transferencia de dos vías. Usted puede hacer esto de forma automática para cada conexión a través del demonio inet o en la línea de comandos en modo autónomo para dejarlo funcionando en segundo plano para rsyncs frecuentemente repetidas. Yo personalmente lo uso en el modo independiente, como Apache. Tengo una entrada en el crontab que sincroniza un directorio de sitios Web por hora. Además, hay un script CGI que la gente disparar con frecuencia durante el día para la actualización inmediata de los contenidos. Se trata de una gran cantidad de llamadas rsync! Si usted comienza el demonio rsync a través de su demonio de inet, y luego de incurrir en más gastos con cada llamada rsync. Es, básicamente, reiniciar el demonio rsync para cada conexión de su servidor recibe! Es el mismo razonamiento a partir de Apache en modo independiente en lugar de a través del demonio inet. Es más rápido y eficaz para empezar a rsync en modo autónomo si se prevé una gran cantidad de tráfico rsync. De lo contrario, para el traslado ocasional de seguir el procedimiento para disparar rsync a través del demonio de inet. De esta manera el demonio rsync, por pequeño que sea, no se sienta en la memoria, si usted lo utiliza solamente una vez al día o lo que sea. Su llamada.
A continuación se muestra un ejemplo de archivo de configuración de rsync. Se coloca en el directorio / etc como rsyncd.conf
        
motd = / etc / rsyncd.motd
        
log file = / var / log / rsyncd.log
        
pid file = / var / run / rsyncd.pid
        
bloquear el archivo / var / run / rsync.lock

        
[Simple_path_name]
           
path = / rsync_files_here
           
comment = Mi servidor Rsync Propia
           
uid = nobody
           
gid = nobody
           
read only = no
           
lista = yes
           
usuarios de autenticación = Nombre de usuario
           
secretos file = / etc / rsyncd.scrt

    
Varias opciones que se modifican desde el principio son las áreas en cursiva en el ejemplo anterior. Voy a empezar en la línea superior, por línea, y pasar por lo que se debe prestar atención. Lo que el ejemplo anterior hace es configurar un único "camino" para la transferencia de rsync para esa máquina.

    
A partir de la parte superior hay cuatro líneas que especifican los archivos y sus rutas de acceso para un funcionamiento en modo demonio rsync. El primero es un "mensaje del día" (motd) archivo como lo haría uso de un servidor FTP. El contenido de este archivo se muestra cuando los clientes se conectan a la máquina. Se usa como una advertencia de bienvenida, o simplemente la identificación. La siguiente línea especifica un archivo de registro para enviar el diagnóstico y la NORML tiempo de ejecución de los mensajes. El archivo contiene el PID "ID del proceso" (PID) del demonio que se ejecuta rsync. Un archivo de bloqueo se utiliza para asegurarse de que las cosas funcionen bien. Las opciones son globales para el demonio rsync.
    
El siguiente bloque de líneas es específica para un "camino" que usa rsync. Las opciones que contiene tienen un efecto sólo dentro del bloque (que son las opciones locales, no globales). Comience con el "camino" nombre. Es un poco confuso que rsync utiliza la expresión "camino" - ya que no es necesariamente una ruta completa. Sirve como un "apodo zona de rsync" de clases. Es un nombre corto, fácil de recordar (y el tipo!) Que se asigna a uno. Tratar camino de sistema de archivos con todas las opciones que especifique Estas son las cosas que usted necesita para establecer en primer lugar:

        
camino - este es el camino real para sistema de archivos donde están los archivos rsync'ed desde y / o.
        
comentario - una explicación breve y descriptivo de lo que y donde el camino apunta a los listados.
        
usuarios de autenticación - que realmente debería poner esto en restringir el acceso a sólo un usuario previamente definido que se especifica en el archivo de secretos siguiente - no tiene que ser un usuario válido del sistema.
        
archivo de secretos - el archivo de texto plano que contiene la clave / valor pares de nombres de usuario y contraseñas.

    
Una cosa que usted debería considerar seriamente son los "hosts allow" y "hosts deny" las opciones de su camino. Introduzca las direcciones IP o nombres de host que desea permitir o denegar específicamente! Si no lo hace, o al menos usar el "auth usuarios", luego, básicamente, esa área de tu sistema de archivos está muy abierto a todo el mundo por cualquier persona usando rsync! Algo que pensar seriamente que usted debe evitar ...

    
Revise la página man rsyncd.conf con "rsyncd.conf hombre" y lo leí con mucho cuidado en que las opciones de seguridad se refiere. Usted no desea que cualquiera venga y rsync a un directorio vacío con el "- delete" opción, ahora lo hace?

    
Las demás opciones están todos explicados en la página del manual de rsyncd.conf. Básicamente, las opciones anteriores especificar que los archivos se chmod'ed a uid / gid, la ruta de sistema de archivos es de lectura / escritura y que el camino rsync aparece en los listados de rsync. Los secretos rsync presentar guardo en / etc / junto con los archivos de configuración y motd, y llevar delante "rsyncd". para mantenerlos juntos.
Usando rsync sí mismo

    
Ahora a usar realmente, o iniciar una transferencia con rsync rsync sí mismo. Es el mismo binario como el demonio, solo que sin el "- daemon" del pabellón. Su sencillez es una virtud. Voy a empezar con una línea de comandos que uso en una secuencia de comandos para sincronizar un árbol web abajo.

        
rsync - verbose - Progreso - Estadísticas - compress - rsh = / usr / local / bin / ssh \
              
- Recursive - tiempos - ondulaciones permanentes - enlaces - eliminar \
              
- Exclude "* bak" - exclude "* ~" \
              
/ Www / * servidor web: simple_path_name

    
Vamos a pasar por ella una línea a la vez. La primera línea llama a rsync sí mismo y se especifican las opciones de "prolija, el" progreso "y" estadísticas "para que usted pueda ver qué está pasando en esta primera vez. La" compresión "y" opciones de rsh "especificar que desea que el flujo comprimido y para enviarlo a través de ssh (recuerda desde arriba?) por seguridad.

    La siguiente línea especifica cómo rsync sí opera en los archivos. Le estás pidiendo rsync aquí para ir a través de su ruta de origen de forma recursiva con la "recursiva" y para preservar las marcas de tiempo y los permisos con los "tiempos" y "permanentes." Copia los enlaces simbólicos con "enlaces" y eliminar las cosas desde el servidor remoto rsync que se eliminan también a nivel local con "borrar".

    
Ahora tenemos una línea donde hay un poco de poder y la flexibilidad. Puede especificar GNU tar-al igual que incluir y excluir los patrones de aquí. En este ejemplo, te estoy diciendo rsync a ignorar algunos de los archivos de copia de seguridad que son comunes en este árbol de la web ("*. Bak" y "* del ~" archivos). Puedes poner lo que quieras para que coincida con este, se adapte a sus necesidades específicas. Puede dejar esta línea hacia fuera y rsync se copiarán todos los archivos a medida que son a nivel local a la máquina remota. Depende de lo que quieres.

    
Por último, la línea que especifica la ruta de origen, la máquina remota y rsync rsync "camino". La primera parte "/ www / *" especifica que en mi sistema de ficheros local, quiero rsync para apoderarse de los archivos de la transmisión al servidor rsync remoto. La siguiente palabra, "servidor web" debe ser el nombre DNS o la dirección IP de su servidor de rsync. Puede ser "wxyz" o "rsync.mydomain.com" o simplemente "servidor web" si usted tiene un apodo se define en el archivo / etc / hosts, como lo hago aquí. Los dos puntos clave especifica que desea que todo el lío enviado a través de su túnel ssh, en comparación con el túnel de rsh regular. Este es un punto importante prestar atención a! Si usted utiliza dos puntos, entonces a pesar de la especificación de ssh en la línea de comandos con anterioridad, todavía pasará por rsh. Lamentablemente. El último "www" en esa línea es el rsync "camino" que se configura en el servidor como en el ejemplo anterior.

    
Sí, eso es todo! Si ejecuta el comando anterior en el cliente rsync local, entonces se le transfiera la totalidad "/ www / *" árbol para el control remoto "servidor web" de la máquina, excepto los archivos de copia de seguridad, la preservación de las marcas de tiempo de archivos comprimidos y los permisos - y seguro - con discapacidad visual comentarios sobre lo que está pasando.

    
Tenga en cuenta que en el ejemplo anterior, he utilizado las opciones de estilo de GNU largos para que pueda ver lo que la línea de comandos es todo. También puede utilizar las abreviaturas, las letras individuales-para hacer lo mismo. Pruebe a ejecutar rsync con el "- help" opción por si sola y se puede ver lo que la sintaxis y las opciones están disponibles.

Rsync en la Red


    
Usted puede encontrar la distribución de rsync en la página de inicio rsync o golpear el sitio FTP rsync.

    
También hay varias páginas de información sobre rsync a cabo allí, muchos de los cuales residen en el sitio web de rsync. A continuación se presentan tres documentos que también debe leer antes de usar rsync Thouroughly de manera que usted lo entiende así:

        
Página del manual de rsync
        
Rsyncd.conf página de manual
        
Informe de técnica del algoritmo de rsync

1 pensamientos:

Post a Comment

feedback!