So überprüfen Sie, wann Ihr Update zuletzt ausgeführt wurde

11

Gibt es eine kanonische Methode, um herauszufinden, wann das letzte Mal yum updateauf einem System ausgeführt wurde?

Wir haben Staging-Server eingerichtet, auf denen automatische Updates ausgeführt werden. Sofern diese nicht umfallen, aktualisieren wir unsere Produktionsserver etwa einmal im Monat manuell (außer bei kritischen Updates). (Ich sage manuell, idealerweise möchte ich ein Update für alle manuell auslösen, aber das ist ein anderes Problem).

Aber du wirst beschäftigt, Aufgaben rutschen ab usw. Also möchte ich einen Nagios-Check einrichten, der uns stört, wenn wir ihn zu lange stehen lassen.

Das Durchsuchen des Webs hat mich nicht weit gebracht. Das Beste, was ich bisher gefunden habe, ist das Stöbern im System:

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

Das gibt mir so etwas, Mar 12das ich dann in ein Datum umwandeln kann. Es gibt ein paar kleinere Komplikationen, ob das Datum dieses oder letztes Jahr ist, und ich müsste es auch überprüfen, /var/log/yum.log.1falls es unmittelbar nach einem Logrotate überprüft wird. Aber das sind nur Skriptdetails.

Dies kann natürlich durch ein Update auf ein einzelnes Paket und nicht durch ein allgemeines Update "getäuscht" werden.

Gibt es also eine kanonischere Möglichkeit, um zu sehen, wann ausgeführt yum updatewurde?

Bearbeiten: Ich habe jetzt ein Nagios NRPE-Plugin geschrieben, das die Idee verwendet, die ich in der Frage vorgebracht habe. Sie können es unter https://github.com/aptivate/check_yum_last_update herunterladen

Hamish Downer
quelle

Antworten:

19

Mit der Option yum history kann der Benutzer anzeigen, was in früheren Transaktionen geschehen ist. Um es einfacher zu machen, können Sie Update aus dem Yum-Verlauf herunterladen

# 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 
Chakri
quelle
1
Welche Version von yum verwenden Sie? Der historyBefehl scheint nicht verfügbar zu sein. (Wir verwenden meistens noch CentOS 5). Eigentlich gerade ausprobiert und CentOS 6 hat es. Aber es ist nicht universell genug für unsere Zwecke - aber es sieht für andere nützlich aus.
Hamish Downer
1
Ja, dies ist auf Centos 6.x mit yum Version 3.2.29. Vielen Dank
Chakri
1
Beachten Sie, dass bei einer Kombination aus Installieren und Aktualisieren in der Spalte Aktion angegeben ist, I, Udass der Grep etwas komplizierter wird. Dies kann passieren, wenn ein aktualisiertes Paket von einem neuen Paket abhängt und das neue Paket installiert wird.
Hamish Downer
Da manchmal Aktualisierungen während der Installation von etwas anderem auftreten, können Sie die Ausgabe über grep wie folgt weiterleiten, wenn Sie diese auch sehen möchten: yum history | grep 'U', das alle Läufe abfängt, die ein Update beinhalten.
JJC
2

Ich denke, der einzige Weg, auf dem Sie absolut sicher sein können, ist das Laufen psacct.

Auf diese Weise können Sie ausführen lastcomm yum. Wenn Sie dies analysieren, wissen Sie, wer es wann ausgeführt hat.

Bart De Vos
quelle
1

Ich vermute, Sie zeigen eine Reihe von "Dev" -Servern auf ein Dev Yum Repo?

Sie können das automatische Upgrade in einem Cron / Puppet / Chef-Skript durchführen, das bei Erfolg in eine Datei schreibt. (sagen /etc/yum_last)

Dann können Sie yum check-updatein cron / other auf den Dev-Servern regelmäßig verwenden, um festzustellen, ob Updates verfügbar sind. Wenn dieser Befehl besagt, dass> 0 Aktualisierungen verfügbar sind, vergleichen Sie das aktuelle Datum mit dem Zeitstempel der Datei, die Sie beim letzten automatischen Yum-Upgrade erstellt haben.

Wenn dieser Datumsunterschied in Tagen zunimmt, können Sie Nagios alarmieren.

Sie können sich auch Pulp ansehen, wenn es Ihren Anforderungen entspricht.

Nicht jetzt
quelle
0

Der folgende Befehl listet kürzlich installierte oder aktualisierte RPM-Pakete auf:

rpm -qa --last  | head

Es kann auch Pakete enthalten, die außerhalb von YUM installiert sind. Dieser Befehl kann auch ohne Root-Berechtigung ausgeführt werden.

Seff
quelle