Я строю скрипт, чтобы узнать, когда список серверов в последний раз полностью обновлялся yum update
.
Я могу найти его, history |grep "yum update"|head -n 1
однако, проблема в том, что пользователь мог запустить его, но не набрал «y» в приглашении.
Другой способ, которым я пытался, был 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
Но я не могу найти способ определить дату, когда yum update
был запущен и был успешным. Так как, если я проверю, например, идентификатор транзакции 108, который помечен как «Обновление», запущенный 18-го числа, я не найду команду yum update
на эту конкретную дату:
history |grep 2015 |grep "yum update"
5182 20150313-054444 > yum update
Другой путь, который я пробовал, был с, /var/log/yum.log
но yum.log
покажет установки и обновления также. Если пакет обновляется во время установки пакета e: g: yum install varnish
и требуется обновление некоторых пакетов, например: (varnish-libs-2.1.5-5.el6.i686, 3.0.7-1.el6.i686 и т. Д.), Это будет отображаться как обновленный в yum.log
Есть ли способ найти дату yum update
запуска и успешности?
Ответы:
Вы почти ответили на свой вопрос. Вот способ найти последние 5 обновленных пакетов:
grep Updated: /var/log/yum.log | tail -5
Пример вывода:
источник
-10
не нужна, так как хвост показывает десять строк по умолчанию: так что лучше:grep Updated: /var/log/yum.log | tail
yum update
был запущен и был успешно запущен, а не последние 5 обновленных пакетов./var/log/yum.log-20180101
т. Д.Сначала нужно определить, что означает «обновление». Например. обновление только с более новым ядром будет установкой (и, вероятно, удалением более старого). Если кто-то делает "upgrade foo", это считается? А как насчет "distro-sync", который в конечном итоге просто делает обновления (или, если это не так)? Это считается, если транзакция не удалась?
Тогда прекратите срывать вывод, это приведет только к боли и страданиям.
Использовать API довольно просто, например (последний раз была запущена транзакция для обновления любого пакета):
источник
Следующая команда выводит список недавно установленных или обновленных пакетов RPM:
Он также может включать в себя пакеты, установленные вне YUM. Эта команда также может выполняться без прав root.
источник