Je construis un script pour savoir quand une liste de serveurs a été entièrement mise à jour pour la dernière fois yum update
.
Je peux le trouver par un history |grep "yum update"|head -n 1
cependant, le problème est qu'un utilisateur aurait pu le lancer mais n'a pas tapé "y" dans l'invite.
J'ai aussi essayé avec yum history
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
109 | <xyz user> | 2015-08-20 07:18 | Erase | 1 E<
108 | root <root> | 2015-08-18 08:56 | Update | 3 >
107 | root <root> | 2015-08-14 07:39 | Update | 1
106 | root <root> | 2015-08-14 07:38 | Update | 1
105 | root <root> | 2015-08-14 07:38 | Update | 3
104 | root <root> | 2015-08-13 07:31 | Update | 1
103 | root <root> | 2015-08-11 05:46 | Update | 1
102 | root <root> | 2015-08-11 05:46 | Update | 2
101 | root <root> | 2015-08-11 05:45 | Update | 3
100 | root <root> | 2015-08-11 05:45 | Update | 3
99 | root <root> | 2015-08-10 20:41 | Update | 1
98 | root <root> | 2015-08-05 02:35 | Update | 1
97 | root <root> | 2015-05-14 10:52 | Update | 1
96 | root <root> | 2015-05-01 02:59 | Obsoleting | 2
95 | root <root> | 2015-04-09 16:06 | Update | 1 <
94 | <xyz.user> | 2015-03-28 08:49 | Update | 1 ><
93 | <xyz.usert> | 2015-03-28 08:14 | Erase | 3 ><
92 | <xyz.user> | 2015-03-13 07:46 | Install | 6 ><
91 | <xyz.user> | 2015-03-13 05:45 | I, U | 24 >
90 | root <root> | 2015-03-04 01:24 | Update | 3
Mais je ne trouve pas de moyen de déterminer la date de yum update
lancement et de réussite. Puisque si je vérifie, par exemple, l'ID de transaction 108 qui est marqué comme "Update" lancé le 18, je ne trouve pas la commande yum update
pour cette date particulière:
history |grep 2015 |grep "yum update"
5182 20150313-054444 > yum update
Un autre chemin que j'ai essayé était avec /var/log/yum.log
mais yum.log
affichera également les installations et les mises à jour. Si un package est mis à jour lors de l'installation d'un package e: g: yum install varnish
et qu'il nécessite une mise à jour de certains packages, par exemple: (varnish-libs-2.1.5-5.el6.i686, 3.0.7-1.el6.i686 etc.), cela sera affiché comme mis à jour dans le yum.log
Existe-t-il un moyen de trouver la date de yum update
lancement et de succès?
Réponses:
Vous avez presque répondu à votre question. Voici un moyen de trouver les 5 derniers packages mis à jour:
grep Updated: /var/log/yum.log | tail -5
Exemple de sortie:
la source
-10
n'est pas nécessaire car la queue affiche dix lignes par défaut: c'est donc mieux:grep Updated: /var/log/yum.log | tail
yum update
été lancé et exécuté avec succès, pas les 5 derniers packages mis à jour./var/log/yum.log-20180101
etc.Vous devez d'abord définir ce que signifie «mise à niveau». Par exemple. la mise à niveau avec seulement un noyau plus récent sera une installation (et probablement l'effacement d'un ancien). Si quelqu'un fait une "mise à niveau foo", cela compte-t-il? Qu'en est-il de la "distro-sync" qui finit par faire des mises à niveau (ou si ce n'est pas le cas)? Est-ce que cela compte si la transaction a échoué?
Ensuite, arrêtez de produire des cris, cela ne fera que causer de la douleur et de la souffrance.
L'utilisation de l'API est assez simple, par exemple (la dernière fois qu'une transaction a été lancée pour mettre à niveau un package):
la source
La commande suivante répertorie les packages RPM récemment installés ou mis à jour:
Il peut également inclure des packages installés en dehors de YUM. Cette commande peut également s'exécuter sans privilège root.
la source