Comment vérifier la dernière exécution de la mise à jour yum

11

Existe-t-il un moyen canonique de connaître la dernière yum updateexécution de ce système?

Notre configuration est que nous avons des serveurs intermédiaires qui exécutent des mises à jour automatiques, et à condition qu'ils ne tombent pas, nous mettrons à jour manuellement nos serveurs de production environ une fois par mois (sauf mises à jour critiques). (Je dis manuellement, idéalement, je veux déclencher manuellement une mise à jour sur chacun d'eux, mais c'est un autre problème).

Mais vous êtes occupé, les tâches glissent, etc. Je veux donc mettre en place un chèque nagios qui commencera à nous déranger si nous l'avons laissé trop longtemps.

La recherche sur le Web ne m'a pas conduit très loin. En fouillant dans le système, la meilleure chose que j'ai trouvée jusqu'à présent serait quelque chose comme:

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

ce qui me donne quelque chose comme ça Mar 12que je peux ensuite convertir en date. Il y a quelques complications mineures quant à savoir si la date est cette année ou l'année dernière, et je devrais également vérifier /var/log/yum.log.1en cas de vérification immédiatement après un logrotate. Mais ce ne sont que des détails de script.

Cela peut bien sûr être «dupé» par une mise à jour d'un package unique plutôt que par une mise à jour générale.

Existe-t-il donc une manière plus canonique de voir quand a yum updateété exécuté?

Edit: J'ai maintenant écrit un plugin Nagios NRPE qui utilise l'idée que j'ai avancée dans la question. Vous pouvez le récupérer sur https://github.com/aptivate/check_yum_last_update

Hamish Downer
la source

Réponses:

19

L'option d'historique yum permet à l'utilisateur de voir ce qui s'est passé dans les transactions passées. Pour le rendre plus simple, vous pouvez grep Update à partir de l' historique 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 
Chakri
la source
1
Quelle version de yum utilisez-vous - il ne semble pas que la historycommande soit disponible. (Nous utilisons principalement CentOS 5). En fait, juste essayé et CentOS 6 l'a. Mais il n'est pas assez universel pour nos besoins - mais semble utile pour les autres.
Hamish Downer
1
Oui, c'est sur centos 6.x avec la version 3.2.29 de yum. Merci
Chakri
1
Notez que s'il y avait une combinaison d'installation et de mise à jour, la colonne Action indique I, Uque la grep est un peu plus compliquée. Cela peut se produire si un package mis à jour dépend d'un nouveau package, provoquant l'installation du nouveau package.
Hamish Downer
Étant donné que parfois des mises à jour se produisent lors de l'installation de quelque chose d'autre, si vous voulez les voir aussi, vous pouvez passer la sortie par grep comme ceci: yum history | grep 'U' qui interceptera toutes les exécutions impliquant une mise à jour.
JJC
2

Je pense que la seule façon d’être absolument sûr est de courir psacct.

Cela vous permettra de courir lastcomm yum. Si vous analysez ceci, vous saurez qui l'a exécuté et quand.

Bart De Vos
la source
1

Je suppose que vous pointez un ensemble de serveurs 'Dev' vers un repo Dev yum?

Vous pouvez effectuer la mise à niveau automatique dans un script cron / puppet / chef qui, en cas de succès, écrit dans un fichier. (dis /etc/yum_last)

Ensuite, vous pouvez utiliser yum check-updatepériodiquement dans cron / other sur les serveurs de développement pour voir si des mises à jour sont disponibles. Si cette commande indique> 0 nombre de mises à jour sont disponibles, vous comparez la date actuelle avec l'horodatage du fichier que vous créez lors de votre dernière mise à niveau automatique.

Si cette différence de date augmente en jours, vous pouvez avoir une alerte Nagios.

Vous pouvez également consulter Pulp s'il correspond à vos besoins.

Pas maintenant
la source
0

La commande suivante répertorie les packages RPM récemment installés ou mis à jour:

rpm -qa --last  | head

Il peut également inclure des packages installés en dehors de YUM. Cette commande peut également s'exécuter sans privilège root.

Seff
la source