Я пишу скрипт для получения даты последнего обновления / патча на нескольких сотнях серверов.Не имея другого инструмента по разным причинам, я решил написать сценарий.На данный момент я использую следующую команду:
sudo yum history | grep [0-9] | grep -E 'Update|Install|U|I' | awk 'NR==1'
, которая дает мне первую строку с действием над ней.Но это только дает мне первую строчку, я играл с идеей взять первые 5 строк, но это может быть неприменимо к каждой ситуации.
sudo yum history | grep [0-9] | grep -E 'Update|Install|U|I' | awk 'NR>=1&&NR<=5'
Итак, я хотел бы проверить последний столбец или два, и если было обновлено или установлено более x пакетов, чтобы получить эту строку.
Вообще говоря, вывод истории yum:
18 | first last <username> | 2018-08-30 19:41 | E, I, U | 43 ss
17 | first last <username> | 2018-07-10 15:28 | E, I, U | 230 EE
16 | first last <username> | 2018-04-25 20:08 | E, I, U | 44 ss
15 | first last <username> | 2018-01-30 20:57 | E, I, O, U | 108 EE
14 | first last <username> | 2018-01-30 20:39 | Install | 4
Проблема, с которой я сталкиваюсь, состоит в том, что последние два столбца могут различаться по положению в столбце, а последний столбец может быть просто числовымили он может содержать буквы или специальные символы.Я хочу игнорировать любой последний столбец, в котором есть любой символ, который не является числовым, и оценить, установлено ли в последнем столбце более 20 установленных или обновленных пакетов.Если в последнем столбце содержится более 20 пакетов, захватите эту строку и только эту строку.