Come verificare l'ultima esecuzione di yum update


11

Esiste un modo canonico per scoprire l'ultima volta che è yum updatestato eseguito su un sistema?

La nostra configurazione è che abbiamo server di gestione temporanea che eseguono aggiornamenti automatici e, a condizione che non cadano, aggiorneremo manualmente i nostri server di produzione circa una volta al mese (esclusi gli aggiornamenti critici). (Dico manualmente, idealmente voglio innescare manualmente un aggiornamento su tutti loro, ma questo è un altro problema).

Ma sei occupato, le attività scivolano ecc. Quindi voglio impostare un controllo dei nagios che inizierà a darci fastidio se lo lasciamo troppo a lungo.

La ricerca sul web non mi ha portato molto lontano. Frugando nel sistema, la cosa migliore che ho trovato finora sarebbe qualcosa del tipo:

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

che mi dà qualcosa di simile Mar 12che posso quindi convertire in una data. Ci sono alcune piccole complicazioni sul fatto che la data sia quest'anno o l'anno scorso, e dovrei anche controllare /var/log/yum.log.1in caso di controllo immediatamente dopo un logrotate. Ma questi sono solo dettagli di scripting.

Questo può ovviamente essere "ingannato" da un aggiornamento di un singolo pacchetto piuttosto che da un aggiornamento generale.

Quindi c'è un modo più canonico per vedere quando è yum updatestato eseguito?

Modifica: ora ho scritto un plugin Nagios NRPE che utilizza l'idea che ho avanzato nella domanda. Puoi prenderlo da https://github.com/aptivate/check_yum_last_update

Risposte:


19

L'opzione cronologia yum consente all'utente di visualizzare ciò che è accaduto nelle transazioni passate. Per renderlo più semplice, puoi grep Update dalla cronologia di 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 

1
Quale versione di yum stai usando? Non mi sembra di avere il historycomando disponibile. (Per lo più stiamo ancora usando CentOS 5). In realtà, ho appena provato e CentOS 6 ce l'ha. Ma non è abbastanza universale per i nostri scopi - ma sembra utile per gli altri.
Hamish Downer,

1
Sì, questo è su centos 6.x con la versione yum 3.2.29. Grazie
Chakri,

1
Nota che se ci fosse una combinazione di Installa e Aggiorna, la colonna Azione indica I, Uche il grep è leggermente più complicato. Ciò può accadere se un pacchetto aggiornato dipende da un nuovo pacchetto, causando l'installazione del nuovo pacchetto.
Hamish Downer,

Dato che a volte si verificano aggiornamenti durante l'installazione di qualcos'altro, se si desidera vedere anche quelli, si potrebbe passare l'output attraverso grep in questo modo: yum history | grep 'U' che prenderà tutte le esecuzioni che comportano un aggiornamento.
JJC,

2

Penso che l'unico modo in cui puoi essere assolutamente sicuro sia correndo psacct.

Questo ti permetterà di correre lastcomm yum. Se analizzi questo, saprai chi l'ha eseguito e quando.


1

Immagino che tu stia indirizzando un set di server "Dev" a un repository Dev yum?

Potresti fare l'aggiornamento automatico in uno script cron / puppet / chef, che in caso di successo scrive su un file. (dire /etc/yum_last)

Quindi è possibile utilizzare yum check-updateperiodicamente cron / altro sui server Dev per vedere se sono disponibili aggiornamenti. Se questo comando dice> 0 numero di aggiornamenti disponibili, si confronta la data corrente con il timestamp del file creato quando è stato eseguito l'ultimo aggiornamento automatico di yum.

Se questa differenza di data aumenta in giorni, puoi ricevere un avviso Nagios.

Puoi anche guardare Pulp se si adatta alle tue esigenze.


0

Il seguente comando elenca i pacchetti RPM installati o aggiornati di recente:

rpm -qa --last  | head

Può includere pacchetti installati anche al di fuori di YUM. Questo comando può anche essere eseguito senza il privilegio di root.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.