Citation d' Albert Einstein
Folie: faire la même chose encore et encore et attendre des résultats différents
Souvent, Linux me rend fou parce que je fais la même chose encore et encore et que j'obtiens des résultats différents d'une boîte à l'autre. (Voir ma question précédente ).
Pour moi, le plus grand problème de confusion est la prise en charge d'une machine que quelqu'un d'autre a installée (comme c'est le cas lors de l'inscription avec une société d'hébergement Web). Vous ne savez tout simplement pas à quoi vous avez affaire.
Existe-t-il une sorte d' outil de différence intelligent que je peux exécuter sur une installation de Linux (Ubuntu) pour me donner un aperçu de la façon dont cette machine s'est écartée de l'installation par défaut?
c'est-à-dire quelque chose qui peut me montrer une liste des commandes qui vont se comporter de façon surprenante évitant ainsi une approche par essais et erreurs.
Réponses:
Chaque fois que j'ai un bon système de référence et un mauvais comportement, j'essaie de les comparer avec vimdiff. Ce que je compare varie avec le problème, par exemple
1) Lorsque je compare des serveurs au niveau du package, je crée des listes triées de packages sur chaque serveur, envoie les résultats aux fichiers et les diff, par exemple
Sur server1:
Sur le serveur2:
Copiez les deux fichiers sur la même machine et différez-les (ou vimdiff).
2) Faites une liste des services en cours d'exécution comme dans l'exemple 1
... etc., et vimdiff ceux-là.
3) Si vous dépannez des configurations incohérentes avec Apache par exemple, faites des copies des fichiers de configuration, et vimdiffez-les, etc.
la source
/etc
contrôle de version pour vous aider à garder une trace de ce qui se passe.etckeeper
fera cela pour vous.La plupart des différences entre deux installations de la même distribution seront présentes
/etc
. Copiez le contenu d'/etc
une machine dans un répertoire temporaire de l'autre et exécutezSi vous souhaitez comparer une machine avec une installation par défaut, obtenez une copie d'une nouvelle installation par défaut (peut-être dans une machine virtuelle).
Si vous pouvez contrôler une machine depuis le début, assurez-vous d'installer etckeeper pour rester
/etc
sous contrôle de version. Vous pourrez alors voir précisément ce qui a changé.Bien sûr, il y aura beaucoup de différences. Si vous ne savez pas encore où chercher, ce n'est pas la bonne approche pour enquêter sur une différence particulière de comportement. Par exemple, supposons que la commande
adduser
se comporte différemment sur deux machines. Ensuite, la meilleure approche consiste à regarder ce quiadduser
se passe; exécutez-le sur les deux machines et comparez. S'il a une option pour lui dire d'être plus verbeux (adduser
ne le fait pas), utilisez-le. Plus radicalement, exécutez le programme sous strace , par exemplepour voir à quels fichiers
adduser
accède.la source
Pour revenir à une question précédente, votre outil astucieux, qui me semble être une bonne idée, mais je n'ai jamais entendu parler d'une telle bête, doit vérifier des choses comme le type et la taille du système de fichiers.
Un exemple concret qui m'est arrivé en 2002: deux personnes ont installé des systèmes SuSE 7.3 sur deux serveurs montés en rack adjacents. Ils ont mis beaucoup d'efforts pour obtenir les mêmes packages sur les deux serveurs. Un peu plus tard, nous avons eu des problèmes avec certains logiciels en développement. Cela se résumait au système de fichiers ext3 sur un serveur, Reiserfs sur l'autre. Un simple "ls" sur Reiserfs donne les noms de fichiers dans l'ordre lexical, mais pas sur ext3. Un programme a échoué sur les noms de fichiers en panne.
la source
Pour les fichiers, les utilisateurs, les groupes, les packages, les services, etc., j'ai utilisé http://www.scriptrock.com ; c'est gratuit pour quelques serveurs et vous donne une belle comparaison visuelle des différences entre les serveurs .. très pratique pour la dérive
la source