Как проверить, был ли последний запуск обновления yum


11

Есть ли канонический способ узнать, когда последний раз yum updateзапускался в системе?

Наша установка состоит в том, что у нас есть промежуточные серверы, на которых выполняются автоматические обновления, и, если они не падают, мы будем вручную обновлять наши производственные серверы примерно раз в месяц (за исключением критических обновлений). (Я говорю вручную, в идеале я хочу вручную запустить обновление для всех из них, но это другая проблема).

Но вы заняты, задачи ускользают и т. Д. Поэтому я хочу настроить проверку nagios, которая начнет беспокоить нас, если мы оставим ее слишком долго.

Поиск в Интернете не дал мне очень далеко. Покопаясь в системе, лучшее, что я нашел на данный момент, будет что-то вроде:

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

что дает мне что-то вроде того, Mar 12что я могу затем преобразовать в дату. Есть несколько незначительных сложностей относительно того, будет ли дата в этом году или в прошлом году, и я также должен проверить /var/log/yum.log.1в случае проверки сразу после входа в систему. Но это только детали сценариев.

Конечно, это может быть «одурачено» обновлением одного пакета, а не общим обновлением.

Так есть ли более канонический способ узнать, когда yum updateбыл запущен?

Изменить: я сейчас написал плагин Nagios NRPE, который использует идею, которую я выдвинул в вопросе. Вы можете получить его с https://github.com/aptivate/check_yum_last_update

Ответы:


19

Параметр истории yum позволяет пользователю просматривать события прошлых транзакций. Чтобы сделать это проще, вы можете grep Update из истории 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
Какую версию yum вы используете - у меня нет historyкоманды. (В основном мы все еще используем CentOS 5). На самом деле, только что попробовал и CentOS 6 есть. Но это не достаточно универсально для наших целей - но выглядит полезным для других.
— Хэмиш Даунер

1
Да, это на Centos 6.x с версией Yum 3.2.29. Спасибо
— Чакри

1
Обратите внимание, что если была комбинация Install и Update, в столбце Action говорится, I, Uчто grep немного усложняется. Это может произойти, если обновленный пакет зависит от нового пакета, вызывая установку нового пакета.
— Хэмиш Даунер

Так как иногда обновления происходят при установке чего-то другого, если вы тоже хотите это увидеть, вы можете пропустить вывод через grep следующим образом: yum history | grep 'U', который будет перехватывать все запуски, связанные с обновлением.
— JJC

2

Я думаю, что единственный способ, которым вы можете быть абсолютно уверены, это бег psacct.

Это позволит вам бежать lastcomm yum. Если вы проанализируете это, вы узнаете, кто и когда его запускал.


1

Я предполагаю, что вы указываете набор серверов Dev на репозиторий Dev yum?

Вы можете выполнить автоматическое обновление в скрипте cron / puppet / chef, который в случае успеха записывает в файл. (скажем /etc/yum_last)

Затем вы можете yum check-updateпериодически использовать cron / other на серверах разработчиков, чтобы узнать, доступны ли какие-либо обновления. Если в этой команде указано> 0 доступных обновлений, вы сравниваете текущую дату с отметкой времени файла, который вы создали при последнем автоматическом обновлении yum.

Если эта разница в датах увеличивается в днях, вы можете получить предупреждение Nagios.

Вы также можете посмотреть на Pulp, если он соответствует вашим потребностям.


0

Следующая команда выводит список недавно установленных или обновленных пакетов RPM:

rpm -qa --last  | head

Он также может включать пакеты, установленные вне YUM. Эта команда также может выполняться без привилегий root.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.