Citações de Albert Einstein
Insanidade: fazer a mesma coisa repetidamente e esperar resultados diferentes
Muitas vezes, o Linux me deixa louco porque estou fazendo a mesma coisa repetidamente e obtendo resultados diferentes de uma caixa para outra . (Veja minha pergunta anterior ).
Para mim, a maior área de confusão é adquirir uma máquina instalada por outra pessoa (como é o caso ao se inscrever em uma empresa de hospedagem na web). Você simplesmente não sabe com o que está lidando.
Existe algum tipo de ferramenta diff inteligente que eu possa executar em uma instalação do Linux (Ubuntu) para me informar sobre como essa máquina saiu da instalação padrão?
ou seja, algo que possa me mostrar uma lista dos comandos que irão se comportar surpreendentemente, evitando assim uma abordagem de tentativa e erro.
Respostas:
Sempre que tenho um bom sistema de referência e um mau comportamento, tento compará-lo com o vimdiff. O que eu comparo varia com o problema, por exemplo
1) Ao comparar servidores no nível do pacote, crio listas classificadas de pacotes em cada servidor, envio os resultados para os arquivos e os difiro, por exemplo
No servidor1:
No servidor2:
Copie os dois arquivos para a mesma máquina e faça a diferença (ou vimdiff).
2) Faça uma lista de serviços em execução como no exemplo 1
... etc., e vimdiff aqueles.
3) Se você estiver solucionando problemas de configurações inconsistentes com o Apache, por exemplo, faça cópias dos arquivos de configuração e vimdiff-os, etc.
fonte
/etc
controle de versão para ajudá-lo a acompanhar o que está acontecendo.etckeeper
fará isso por você.A maioria das diferenças entre duas instalações da mesma distribuição ocorrerá
/etc
. Copie o conteúdo de/etc
uma máquina para um diretório temporário na outra e executeSe você deseja comparar uma máquina com uma instalação padrão, obtenha uma cópia de uma nova instalação padrão (talvez em uma máquina virtual).
Se você pode controlar uma máquina desde o início, instale o etckeeper para manter o
/etc
controle da versão. Então você poderá ver exatamente o que mudou.Claro, haverá muitas diferenças. Se você ainda não tem uma idéia de onde procurar, esta é a abordagem errada para investigar uma diferença específica de comportamento. Por exemplo, digamos que o comando
adduser
se comporte de maneira diferente em duas máquinas. Então a melhor abordagem é olhar para o queadduser
está fazendo; execute-o nas duas máquinas e compare. Se houver uma opção para dizer que é mais detalhado (adduser
não), use-o. Mais radicalmente, execute o programa sob strace , por exemplopara ver quais arquivos
adduser
acessam.fonte
Para voltar a uma pergunta anterior, sua ferramenta bacana, que me parece uma boa idéia, mas nunca ouvi falar de uma fera assim, precisa verificar coisas como tamanhos e tipo de sistema de arquivos.
Um exemplo da vida real que aconteceu comigo em 2002: duas pessoas instalaram os sistemas SuSE 7.3 em dois servidores montados em rack adjacentes. Eles se esforçam muito para obter os pacotes exatamente iguais nos dois servidores. Pouco tempo depois, tivemos problemas com alguns softwares em desenvolvimento. Tudo se resumia ao sistema de arquivos ext3 em um servidor, Reiserfs no outro. Um simples "ls" no Reiserfs fornece nomes de arquivos em ordem lexical, mas não no ext3. Um programa falhou em nomes de arquivos fora de ordem.
fonte
Para arquivos, usuários, grupos, pacotes, serviços, etc, eu usei http://www.scriptrock.com ; é gratuito para alguns servidores e oferece uma boa comparação visual das diferenças entre os servidores .. muito útil para drift
fonte