Cita de Albert Einstein
Locura: hacer lo mismo una y otra vez y esperar resultados diferentes
Muchas veces, Linux me vuelve loco porque estoy haciendo lo mismo una y otra vez y obtengo resultados diferentes de un cuadro a otro. (Ver mi pregunta anterior ).
Para mí, la mayor área de confusión es hacerse cargo de una máquina que alguien más ha instalado (como es el caso al registrarse con una empresa de alojamiento web). Simplemente no sabes con qué estás lidiando.
¿Hay algún tipo de herramienta de diferencia inteligente que pueda ejecutar en una instalación de Linux (Ubuntu) para darme una idea de cómo esa máquina se ha desviado de la instalación predeterminada?
es decir, algo que me puede mostrar una lista de los comandos que se comportarán de manera sorprendente, evitando así un enfoque de prueba y error.
Respuestas:
Siempre que tengo un buen sistema de referencia y un mal comportamiento, trato de compararlos con vimdiff. Lo que comparo varía con el problema, p. Ej.
1) Al comparar servidores a nivel de paquete, creo listas ordenadas de paquetes en cada servidor, envío los resultados a los archivos y los difundo, por ejemplo
En servidor1:
En el servidor2:
Copie ambos archivos en la misma máquina y difúndalos (o vimdiff).
2) Haga una lista de servicios en ejecución como en el ejemplo 1
... etc., y vimdiff esos.
3) Si está solucionando problemas de configuraciones inconsistentes con Apache, por ejemplo, haga copias de los archivos de configuración y vimdiff esos, etc.
fuente
/etc
control de versiones para ayudarlo a realizar un seguimiento de lo que está sucediendo.etckeeper
Hará esto por ti.La mayoría de las diferencias entre dos instalaciones de la misma distribución estarán en
/etc
. Copie el contenido de/etc
una máquina a un directorio temporal en la otra y ejecuteSi desea comparar una máquina con una instalación predeterminada, obtenga una copia de una nueva instalación predeterminada (quizás en una máquina virtual).
Si puede controlar una máquina desde el principio, asegúrese de instalar etckeeper para mantener
/etc
bajo control de versión. Entonces podrás ver exactamente qué ha cambiado.Por supuesto, habrá muchas diferencias. Si aún no tiene una idea de dónde buscar, este es el enfoque incorrecto para investigar una diferencia particular en el comportamiento. Por ejemplo, supongamos que el comando se
adduser
comporta de manera diferente en dos máquinas. Entonces, el mejor enfoque es mirar lo queadduser
está haciendo; ejecutarlo en ambas máquinas y comparar. Si tiene una opción para decirle que sea más detallado (adduser
no), úselo. Más radicalmente, ejecute el programa bajo strace , p. Ej.para ver a qué archivos
adduser
accede.fuente
Para volver a una pregunta anterior, su ingeniosa herramienta, que me parece una buena idea, pero nunca he oído hablar de que exista una bestia así, debe verificar cosas como el tipo y el tamaño del sistema de archivos.
Un ejemplo de la vida real que me sucedió en 2002: dos personas instalaron sistemas SuSE 7.3 en dos servidores adyacentes montados en bastidor. Pusieron mucho esfuerzo para obtener los paquetes exactamente iguales en ambos servidores. Poco tiempo después, tuvimos problemas con algún software en desarrollo. Se redujo al sistema de archivos ext3 en un servidor, Reiserfs en el otro. Un simple "ls" en Reiserfs da los nombres de los archivos en orden léxico, pero no en ext3. Un programa falló en nombres de archivo fuera de servicio.
fuente
Para archivos, usuarios, grupos, paquetes, servicios, etc. He utilizado http://www.scriptrock.com ; es gratis para algunos servidores y le ofrece una buena comparación visual de las diferencias entre los servidores ... muy útil para la deriva
fuente