Cómo excluir carpetas y archivos con rsync

Estoy trabajando sobre un sistema que tiene servidores en Argentina, Paraguay y Uruguay. Se necesitaba que se repliquen a cierta hora, excluyendo algunos archivos de configuración locales. Para solucionar eso hice un script para crontab:

[sourcecode language=”javascript” light=”true” wraplines=”false”]
#/bin/bash
rsync -e ssh -avl –stats –progress –exclude ‘carpeta1′ –exclude ‘carpeta2/config.inc.php’ /carpetaOrigen root@servidorExterno:/capetaDestino/
[/sourcecode]

Paramétros:

--stats: Informa acerca del estado de transferencia de archivos.
--progress: Muestra el progreso de la transferencia.
-e ssh: Hace la transferencia a través de SSH. Para utilizar un puerto distinto al 22:  -e 'ssh -p 30000'
-avl:

a: mantiene el permiso de archivo.
v: verbose mode
l: preserva links simbólicos si existieran.

--exclude: Carpeta o archivo a excluir de la transferencia.

(!) Tener en cuenta que para automatizar el proceso de transferencia ya se crearon las llaves SSH, y se copiaron en el servidor destino.

2 pensamientos en “Cómo excluir carpetas y archivos con rsync

  1. doxoforo

    Buena aportación la de los excludes. Yo añadiría siempre ‘z’ y –partial.
    z hace que los paquetes viajen comprimidos.
    –partial por si se pilla algun video y se trunca no perder el trabajo transferido ya.
    Asi que como receta principal usaria siempre:

    rsyn -azv –progress –exclude ‘directorio’ origen destino

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>