Abr 262012
 
Artículo Administración de Servidores

(Read this post in english)

El propósito principal de rsync es copiar un contenido entre un origen y un destino, pero también puede ser útil para establecer las diferencias entre dos árboles completos de directorios. Además, tanto el origen como el destino pueden ser locales o encontrarse en otro servidor.

La manera de comparar dos directorios directorioA y directorioB con rsync es ejecutando los dos comandos:

La sintaxis básica del comando rsync para copiar el contenido de ‘directorioA’ en ‘directorioB’ es:

Nota: Es importante colocar el carácter ‘/’ al final del nombre del directorio de origen, ya que de lo contrario rsync crearía un directorio llamado «origen» debajo del directorio «destino»

Con las opciones «–dry-run -v» le indicamos a rsync que no realice ninguna copia, sino que simplemente escriba lo que haría.

La opción «-r» es para que el comando se ejecute recursivamente, recorriendo todo el árbol de directorios.

La opción «-c» establece que la comparación se realice calculando un checksum de los ficheros, en vez de comparando el tamaño y la fecha de los mismos.

Por último, la opción «–delete» indica que elimine los ficheros en el directorio de destino que no existen en el directorio de origen (pero como también hemos especificado –dry-run, el comando sólamente imprimirá los nombres de estos ficheros).

El primer comando de los arriba indicados imprimirá:

    • Los nombres de los ficheros que existen en ambos directorios y son distintos
    • Los nombres de los ficheros que existen en directorioB, y no existen en directorioA, (con líneas de la forma: «delete nombre de fichero»)

El segundo comando imprimirá:

    • Los nombres de los ficheros que existen en ambos directorios y son distintos (deben coincidir con los que presenta el primer comando)
    • Los nombres de los ficheros que existen en directorioA, y no existen en directorioB, (con líneas de la forma: «delete nombre de fichero»)

Ejemplo:

Comparando dos instalaciones de mediawiki wikiA y wikiB, obtenemos:

Como se ve en la salida que genera el comando, el fichero de configuración LocalSettings.php es diferente en ambas instalaciones, y también hay imágenes que sólo existen en wikiA, e imágenes que sólo existen en wikiB

 

 Publicado por en 2:26 pm

  Una respuesta a “Cómo comparar recursivamente el contenido de dos directorios con rsync”

 Deja un comentario

(requerido)

(requerido)