Cytat Alberta Einsteina
Szaleństwo: powtarzanie tego samego w kółko i oczekiwanie różnych rezultatów
Często Linux doprowadza mnie do szału, ponieważ robię to samo w kółko i uzyskuję różne wyniki od pudełka do pudełka. (Zobacz moje poprzednie pytanie ).
Dla mnie największym problemem jest przejęcie maszyny, którą zainstalował ktoś inny (jak ma to miejsce przy rejestracji w firmie hostingowej). Po prostu nie wiesz z czym masz do czynienia.
Czy istnieje jakieś sprytne narzędzie do porównywania, które można uruchomić na instalacji systemu Linux (Ubuntu), aby dowiedzieć się, w jaki sposób ta maszyna zmieniła się od instalacji domyślnej?
tj. coś, co może pokazać mi listę poleceń, które będą zachowywać się zaskakująco, unikając w ten sposób prób i błędów.
Odpowiedzi:
Ilekroć mam dobry system referencyjny i niewłaściwie działający, próbuję porównać je z vimdiff. To, co porównuję, różni się w zależności od problemu, np
1) Porównując serwery na poziomie pakietu, tworzę posortowane listy pakietów na każdym serwerze, przesyłam wyniki do plików i różnicuję je, np.
Na serwerze 1:
Na serwerze 2:
Skopiuj oba pliki na tę samą maszynę i różnicuj je (lub vimdiff).
2) Zrób listę uruchomionych usług jak w przykładzie 1
... itd. i vimdiff.
3) Jeśli np. Rozwiązujesz niespójne konfiguracje z Apache, wykonaj kopie plików konfiguracyjnych, vimdiff itp.
źródło
/etc
kontroli wersji, aby śledzić, co się dzieje.etckeeper
zrobi to za ciebie.Większość różnic między dwiema instalacjami tej samej dystrybucji będzie
/etc
. Skopiuj zawartość/etc
jednego komputera do katalogu tymczasowego na drugim i uruchomJeśli chcesz porównać maszynę z instalacją domyślną, pobierz kopię z nowej instalacji domyślnej (być może na maszynie wirtualnej).
Jeśli możesz kontrolować maszynę od samego początku, zainstaluj etckeeper, aby zachować
/etc
kontrolę wersji. Dzięki temu będziesz mógł dokładnie zobaczyć, co się zmieniło.Oczywiście będzie wiele różnic. Jeśli nie masz pojęcia, gdzie szukać, jest to niewłaściwe podejście do badania konkretnej różnicy w zachowaniu. Załóżmy na przykład, że polecenie
adduser
zachowuje się inaczej na dwóch komputerach. Zatem najlepszym podejściem jest przyjrzenieadduser
się temu, co się dzieje; uruchom go na obu komputerach i porównaj. Jeśli ma opcję, aby powiedzieć, że jest bardziej szczegółowy (adduser
nie), użyj go. Bardziej radykalnie, należy uruchomić program pod strace , npaby zobaczyć, do których plików
adduser
dostęp.źródło
Aby powrócić do wcześniejszego pytania, twoje fajne narzędzie, które wydaje mi się dobrym pomysłem, ale nigdy nie słyszałem o istnieniu takiej bestii, musi sprawdzać takie rzeczy, jak typ i rozmiar systemu plików.
Prawdziwy przykład, który przytrafił mi się w 2002 roku: dwie osoby zainstalowały systemy SuSE 7.3 na dwóch sąsiadujących serwerach montowanych w szafach. Włożyli wiele wysiłku, aby pakiety były dokładnie takie same na obu serwerach. Niedługo potem mieliśmy problemy z niektórymi programami. Sprowadził się do systemu plików ext3 na jednym serwerze, Reiserfs na drugim. Zwykłe „ls” na Reiserfs podaje nazwy plików w porządku leksykalnym, ale nie na ext3. Jeden program zawiódł w przypadku nazw plików poza kolejnością.
źródło
Do plików, użytkowników, grup, pakietów, usług itp. Użyłem http://www.scriptrock.com ; jest bezpłatny dla kilku serwerów i daje ładne wizualne porównanie różnic między serwerami .. bardzo przydatny do driftu
źródło