Як перевірити, коли оновлення yum було востаннє


12

Чи є канонічний спосіб з’ясувати останній раз, який yum updateвиконувався в системі?

Ми налаштовані на те, що у нас є сервіси, що виконують автоматичні оновлення, і за умови, що вони не перепадають, ми вручну оновлюватимемо виробничі сервери приблизно раз на місяць (забороняючи критичні оновлення). (Я кажу вручну, в ідеалі я хочу вручну запустити оновлення для всіх, але це інша проблема).

Але ви зайняті, завдання прослизають і т. Д. Тому я хочу встановити перевірку нагіосів, яка почне нас турбувати, якщо ми її залишимо занадто довго.

Шукати в Інтернеті мене не дуже далеко. Оглянувши систему, найкраще, що я знайшов поки що, було б щось на кшталт:

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

Відповіді:


20

Параметр історії yum дозволяє користувачеві переглядати те, що відбулося в минулих транзакціях. Щоб зробити це більш простим, ви можете отримати оновлення з історії 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 з версією 3.2.29. Дякую
Чакри

1
Зауважте, що якщо була комбінація "Встановити та оновити", стовпець "Дія" говорить про I, Uте, що ускладнення трохи ускладнюється. Це може статися, якщо оновлений пакет залежить від нового пакету, через що новий пакет буде встановлений.
Гаміш Даунер

Оскільки іноді оновлення трапляються під час встановлення чогось іншого, якщо ви хочете побачити їх також, вони можуть передавати результат через grep так: історія yum | grep 'U', який охопить усі запуски, що включають оновлення.
JJC

2

Я думаю, що єдиний спосіб, в якому ви можете бути абсолютно впевнений - це бігти psacct.

Це дозволить вам бігати lastcomm yum. Якщо проаналізувати це, ви дізнаєтесь, хто це запустив і коли.


1

Я здогадуюсь, що ви вказуєте набір серверів "Dev" на Dev yum repo?

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

Тоді ви можете yum check-updateперіодично використовувати в cron / other на Dev-серверах, щоб побачити, чи доступні оновлення. Якщо в цій команді сказано> 0 кількість оновлень доступні, ви порівнюєте поточну дату з часовою позначкою файлу, який ви створюєте, коли ви востаннє виконували автоматичне оновлення.

Якщо ця різниця в датах зростає в днях, ви можете попередити Nagios.

Ви також можете подивитися на Pulp, якщо вона відповідає вашим потребам.


0

Наступні команди перелічують нещодавно встановлені або оновлені пакети RPM:

rpm -qa --last  | head

Він може включати пакети, встановлені і поза YUM. Ця команда також може працювати без привілеїв root.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.