Estoy creando un script para averiguar cuándo se actualizó por completo una lista de servidores por última vez yum update
.
history |grep "yum update"|head -n 1
Sin embargo, puedo encontrarlo , el problema es que un usuario podría haberlo lanzado pero no escribió "y" en el indicador.
Otra forma que intenté fue con 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
Pero no puedo encontrar una manera de determinar la fecha en que yum update
se lanzó y tuvo éxito. Dado que si verifico, por ejemplo, el ID de transacción 108 que está marcado como "Actualización" lanzado el 18, no encuentro el comando yum update
para esa fecha en particular:
history |grep 2015 |grep "yum update"
5182 20150313-054444 > yum update
Otra ruta que probé fue con /var/log/yum.log
pero yum.log
también mostrará las instalaciones y actualizaciones. Si se actualiza un paquete mientras se instala un paquete e: g: yum install varnish
y requiere una actualización de ciertos paquetes, por ejemplo: (varnish-libs-2.1.5-5.el6.i686, 3.0.7-1.el6.i686, etc.) se mostrará como actualizado en yum.log
¿Hay alguna manera de encontrar la fecha en que yum update
se lanzó y fue exitoso?
Respuestas:
Casi respondiste tu pregunta. Aquí hay una manera de encontrar los últimos 5 paquetes actualizados:
grep Updated: /var/log/yum.log | tail -5
Ejemplo de salida:
fuente
-10
no es necesario ya que la cola muestra diez líneas por defecto: así que es mejor:grep Updated: /var/log/yum.log | tail
yum update
se lanzó y se ejecutó con éxito, no los últimos 5 paquetes actualizados./var/log/yum.log-20180101
etc.Primero debe definir qué significa "actualización". P.ej. la actualización con solo un kernel más nuevo será una instalación (y probablemente un borrado de uno más antiguo). Si alguien hace "upgrade foo", ¿eso cuenta? ¿Qué pasa con "distro-sync" que termina simplemente haciendo actualizaciones (o si no lo hace)? ¿Cuenta si la transacción falló?
Luego detenga la producción de greping, solo provocará dolor y sufrimiento.
Usar la API es bastante simple, por ejemplo (la última vez que se inició una transacción para actualizar cualquier paquete):
fuente
El siguiente comando enumera los paquetes RPM recientemente instalados o actualizados:
También puede incluir paquetes instalados fuera de YUM. Este comando también puede ejecutarse sin privilegios de root.
fuente