Jak sprawdzić, kiedy ostatnio aktualizowano yum

12

Czy istnieje kanoniczny sposób, aby dowiedzieć się, kiedy ostatnio yum updateuruchomiono system?

Nasza konfiguracja polega na tym, że mamy serwery pośredniczące, które uruchamiają automatyczne aktualizacje i pod warunkiem, że się nie przewrócą, będziemy ręcznie aktualizować nasze serwery produkcyjne mniej więcej raz w miesiącu (z wyjątkiem aktualizacji krytycznych). (Mówię ręcznie, najlepiej chcę ręcznie uruchomić aktualizację we wszystkich, ale to kolejny problem).

Ale robisz się zajęty, zadania ślizgają się itp. Więc chcę ustawić czek nagios, który zacznie nas niepokoić, jeśli zostawimy go zbyt długo.

Przeszukiwanie sieci nie za bardzo mnie doprowadziło. Grzebiąc w systemie, najlepszą rzeczą, jaką do tej pory znalazłem, byłoby coś takiego:

grep Updated /var/log/yum.log | tail -1 | cut -d' ' -f 1-2

co daje mi coś, Mar 12co mogę później przekształcić w randkę. Istnieje kilka drobnych komplikacji związanych z tym, czy data jest w tym roku czy w zeszłym roku, i musiałbym również sprawdzić /var/log/yum.log.1w przypadku sprawdzenia natychmiast po logrotacie. Ale to tylko szczegóły skryptu.

Można to oczywiście oszukać przez aktualizację pojedynczego pakietu, a nie ogólną aktualizację.

Czy jest więc bardziej kanoniczny sposób sprawdzenia, kiedy yum updatezostał uruchomiony?

Edycja: Napisałem wtyczkę Nagios NRPE, która wykorzystuje ideę przedstawioną w pytaniu. Możesz go pobrać z https://github.com/aptivate/check_yum_last_update

Hamish Downer
źródło

Odpowiedzi:

20

Opcja mniam historii pozwala użytkownikowi zobaczyć, co wydarzyło się w poprzednich transakcjach. Aby było to prostsze, możesz pobrać aktualizację z historii yum

# yum  history
Loaded plugins: fastestmirror, refresh-packagekit
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    41 | root <root>              | 2012-04-27 20:17 | Install        |   19   
    40 | root <root>              | 2011-11-20 10:09 | Install        |   10   
    39 | root <root>              | 2011-11-20 08:14 | Install        |    1 E<
    38 | root <root>              | 2011-11-19 15:46 | Update         |    1 
Czakri
źródło
1
Jakiej wersji mnisz używasz? Wydaje się, że nie mam historydostępnej komendy. (Przeważnie nadal używamy CentOS 5). Właściwie właśnie wypróbowałem i CentOS 6 ma to. Ale nie jest wystarczająco uniwersalny dla naszych celów - ale wydaje się przydatny dla innych.
Hamish Downer
1
Tak, dotyczy to centos 6.x z wersją yum 3.2.29. Dziękuję
Chakri
1
Zauważ, że jeśli istniała kombinacja Instalacji i Aktualizacji, kolumna Akcja mówi, I, Uże grep jest nieco bardziej skomplikowany. Może się to zdarzyć, jeśli zaktualizowany pakiet zależy od nowego pakietu, co powoduje zainstalowanie nowego pakietu.
Hamish Downer
Ponieważ czasami zdarzają się aktualizacje podczas instalowania czegoś innego, jeśli chcesz je również zobaczyć, może przekazać dane wyjściowe przez grep w następujący sposób: yum history | grep 'U', który przechwytuje wszystkie przebiegi wymagające aktualizacji.
JJC
2

Myślę, że jedynym sposobem, aby być absolutnie pewnym, jest bieganie psacct.

To pozwoli ci uruchomić lastcomm yum. Jeśli go przeanalizujesz, będziesz wiedział, kto go uruchomił i kiedy.

Bart De Vos
źródło
1

Zgaduję, że wskazujesz zestaw serwerów „Dev” na repozytorium Dev mniam?

Możesz wykonać automatyczną aktualizację w skrypcie cron / puppet / chef, który po sukcesie zapisuje do pliku. (powiedz /etc/yum_last)

Następnie możesz yum check-updateokresowo używać w cron / other na serwerach Dev, aby sprawdzić, czy są dostępne jakieś aktualizacje. Jeśli to polecenie mówi, że> dostępnych jest 0 aktualizacji, oznacza to, że bieżąca data jest porównywana ze znacznikiem czasu pliku utworzonego podczas ostatniej aktualizacji automatycznej.

Jeśli różnica dat rośnie w ciągu kilku dni, możesz mieć alert Nagios.

Możesz także spojrzeć na Pulp, jeśli pasuje do twoich potrzeb.

Nie teraz
źródło
0

Następujące polecenie wyświetla listę ostatnio zainstalowanych lub zaktualizowanych pakietów RPM:

rpm -qa --last  | head

Może zawierać również pakiety zainstalowane poza YUM. To polecenie można również uruchomić bez uprawnień administratora.

Seff
źródło