Cómo verificar cuándo se ejecutó la última actualización de yum


11

¿Hay alguna forma canónica de averiguar la última vez que yum updatese ejecutó en un sistema?

Nuestra configuración es que tenemos servidores provisionales que ejecutan actualizaciones automáticas, y siempre que no se caigan, actualizaremos manualmente nuestros servidores de producción aproximadamente una vez al mes (salvo las actualizaciones críticas). (Digo manualmente, idealmente quiero activar manualmente una actualización en todos ellos, pero ese es otro problema).

Pero te pones ocupado, las tareas se escapan, etc. Así que quiero configurar un chequeo de nagios que comenzará a molestarnos si lo dejamos demasiado tiempo.

Buscar en la web no me ha llevado muy lejos. Buscando en el sistema, lo mejor que he encontrado hasta ahora sería algo como:

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

lo que me da algo como Mar 12lo que luego puedo convertir en una cita. Hay algunas complicaciones menores sobre si la fecha es este año o el año pasado, y también tendría que verificar /var/log/yum.log.1en caso de verificar inmediatamente después de un logrotate. Pero eso es solo detalles de secuencias de comandos.

Por supuesto, esto puede ser 'engañado' por una actualización de un solo paquete en lugar de una actualización general.

Entonces, ¿hay una forma más canónica de ver cuándo yum updatese ejecutó?

Editar: ahora he escrito un complemento Nagios NRPE que utiliza la idea que planteé en la pregunta. Puede obtenerlo en https://github.com/aptivate/check_yum_last_update

Respuestas:


19

La opción de historial de yum permite al usuario ver lo que sucedió en transacciones pasadas. Para hacerlo más simple, puede grep Actualizar desde el historial de 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
¿Qué versión de yum estás usando? No parece tener el historycomando disponible. (En su mayoría todavía estamos usando CentOS 5). En realidad, acabo de probar y CentOS 6 lo tiene. Pero no es lo suficientemente universal para nuestros propósitos, pero parece útil para otros.
Hamish Downer

1
Sí, esto está en centos 6.x con yum versión 3.2.29. Gracias
Chakri

1
Tenga en cuenta que si hubo una combinación de Instalar y Actualizar, la columna Acción dice que I, Uhacer el grep un poco más complicado. Esto puede suceder si un paquete actualizado depende de un nuevo paquete, lo que hace que se instale el nuevo paquete.
Hamish Downer

Dado que a veces ocurren actualizaciones mientras se instala algo más, si desea verlas también, podría pasar la salida a través de grep de esta manera: yum history | grep 'U' que capturará todas las ejecuciones que impliquen una actualización.
JJC

2

Creo que la única forma en que puedes estar absolutamente seguro es corriendo psacct.

Esto te permitirá correr lastcomm yum. Si analiza esto, sabrá quién lo ejecutó y cuándo.


1

Supongo que estás apuntando un conjunto de servidores 'Dev' a un repositorio Dev yum?

Puede realizar la actualización automática en un script cron / puppet / chef, que, en caso de éxito, escribe en un archivo. (decir /etc/yum_last)

Luego, podría usar yum check-updateperiódicamente en cron / other en los servidores Dev para ver si hay actualizaciones disponibles. Si este comando dice> 0 número de actualizaciones disponibles, puede comparar la fecha actual con la marca de tiempo del archivo que creó la última vez que realizó una actualización automática.

Si esta diferencia de fecha aumenta en días, puede tener alerta a Nagios.

También puede ver Pulp si se ajusta a sus necesidades.


0

El siguiente comando enumera los paquetes RPM recientemente instalados o actualizados:

rpm -qa --last  | head

También puede incluir paquetes instalados fuera de YUM. Este comando también puede ejecutarse sin privilegios de root.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.