Tengo dos servidores que deberían tener la misma configuración, excepto por las diferencias conocidas.
Mediante la ejecución:
find / \( -path /proc -o -path /sys -o -path /dev \) -prune -o -print | sort > allfiles.txt
Puedo encontrar una lista de todos los archivos en un servidor y compararlo con la lista de archivos en el otro servidor. Esto me mostrará las diferencias en los nombres de los archivos que residen en los servidores.
Lo que realmente quiero hacer es ejecutar una suma de verificación en todos los archivos en ambos servidores y compararlos para también encontrar dónde los contenidos son diferentes. p.ej
find / \( -path /proc -o -path /sys -o -path /dev \) -prune -o -print | xargs /usr/bin/sha1sum
¿Es esta una forma sensata de hacer esto? Estaba pensando que rysnc ya tiene la mayor parte de esta funcionalidad, pero ¿se puede usar para proporcionar la lista de diferencias?
-print0
lugar de-print
y enxargs -0
lugar dexargs
. Evitará cualquier problema causado por nombres de archivo "extraños".Respuestas:
Tienes razón, rsync es perfecto para esto. Uso
--itemize-changes
(también conocido como -i). Asegúrese de que puede ejecutar esto como root en ambos lados (o algún otro usuario con acceso completo a la máquina):-a
es para el archivo, y básicamente hace que rsync haga un duplicado exacto (aparte de algunos casos que involucran enlaces)-n
es para funcionamiento en seco, y significa que nada se cambiará realmente (¡Esto es IMPORTANTE! :))-i
es para cambios en los ítems, y genera un formato simple de entender una vez que lo obtienes mostrando cada archivo que necesita ser actualizado (la sintaxis se explica completamente en la página del manual bajo la ayuda detallada para ese activador).--delete
hace que rsync elimine los archivos que existen en el destino pero no en la fuente.Si desea excluir ciertas rutas, use comandos como
--exclude /var
. Los patrones de exclusión son relativos al directorio fuente (que en este caso es /, por lo que son efectivamente absolutos).fuente
Es posible que desee investigar el indicador -c de rsync. De
man rsync
:Dejaría un comentario a la respuesta de Alex Jurkiewicz, pero no tengo suficiente representante: '(todavía ...
fuente
Una herramienta útil que debe considerar es "rpm -Va". Esto imprimirá una lista de todos los archivos empaquetados que difieren de cuando fueron empaquetados. Esto ignora los archivos no empaquetados, pero es una muy buena manera de tener una idea de los archivos que se modificaron desde la instalación, que forman parte del sistema base. También incluyen un indicador que le indica si se consideran archivos de configuración.
Por ejemplo:
Entonces, ".bashrc" y "yum-updatesd.conf" son archivos de "configuración" que han cambiado en tamaño, tiempo y suma de comprobación MD5. "rdate" ha tenido su cambio de modo ...
La base de datos RPM es algo muy útil.
fuente