В нашей среде только одному из наших серверов AIX разрешен доступ в Интернет через брандмауэр. На этом сервере я использую suma для загрузки всех исправлений для всех базовых уровней, технологических уровней и пакетов обновлений, которые есть в нашей среде; это делается ежедневно.
Раз в месяц я копирую все исправления вместе в одну папку на базовый уровень и использую инуток для создания пары замороженных репозиториев, которые можно использовать для исправления всех наших серверов AIX. Таким образом, мы можем гарантировать, что все серверы находятся на одном уровне ОС. Мы называем это «ежемесячным набором исправлений».
У нас есть CSV-файл, в котором перечислены все версии ядра для каждого «ежемесячного набора исправлений» для всех наших разновидностей ОС UNIX/Linux. Этот файл CSV используется нашими сценариями исправления/проверки. Для Linux/Solaris я нашел «приемы» для определения версии ядра из самих файлов репозитория, но в AIX мне не удается определить уровень ОС без фактического исправления сервера с его помощью. После исправления я могу запустить 'oslevel -s', чтобы вычислить уровень ОС, но это слишком поздно, так как наши сценарии исправления используют/требуют oslevel до начала фактического исправления.
Кто-нибудь знает трюк, чтобы сделать это? До сих пор я пробовал следующее:
- Папка нашего репозитория содержит много файлов *.bff, которые являются двоичными файлами, поэтому внутри этих файлов я не могу найти уровень ОС.
- Имена файлов *.bff в основном представляют собой «U», за которыми следуют некоторые цифры и «.bff» (поэтому их нельзя использовать для определения уровня ОС). Но некоторые имена файлов действительно содержат (части) oslevel в имени файла. Например: 7200-01-06.bff 7200-02-01-1732.bff 7200-02-06.bff 7200-03-06.bff 7200-03.bff 7200-04-01.bff 7200-04-02 .bff 7200-04-03.bff 7200-04.bff 7200-05-01.bff 7200-05-02.bff 7200-05.bff. Однако, как вы можете видеть, в последних версиях oslevel часть «дата сборки» отсутствует в имени файла.
- Мы патчим с помощью
install_all_updates -Y -d <путь_к_репозиторию> команда. я пытался использовать install_all_updates -p -d <путь_к_репозиторию>, надеясь, что это будет видно где-то в выводе, но это не так.
- я тоже пробовал
installp -[lL] -d <путь_к_репозиторию>, но и там oslevel не видно.
Я надеюсь, что кто-то может помочь мне с этим.
Изменить ниже (в ответ на его ответ @Jeff Schaller)
Большое спасибо за вашу помощь!
Это очень близко к совпадению, но, боюсь, не совсем...
--> installp -L -d /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511 | grep :bos\.rte\.install: | сортировать -t: -k17n | хвост -1 | awk -F: '{напечатать $3, $17}'
7.2.4.2 1937 г.
root@имя_сервера /nim/export
--> уровень ОС -s
7200-04-01-1939
root@имя_сервера /nim/export
Хотя не знаю, почему... Есть идеи?
Более детально:
--> installp -L -d /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511 | грэп 1937 | туалет -л
613
root@имя_сервера /nim/export
--> installp -L -d /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511 | грэп 1939 | туалет -л
0
root@имя_сервера /nim/export
-->
Поэтому я подумал, что должен быть установлен какой-то пакет с датой сборки 1939, из-за которого oslevel-s отображает эту дату сборки. Поэтому я выполнил следующие команды, чтобы найти этот пакет:
--> lslpp -Lc все | awk -F':' '{print $2" "$3" "$18}" | грэп 1937 | туалет -л
288
root@имя_сервера /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511
--> lslpp -Lc все | awk -F':' '{print $2" "$3" "$18}" | грэп 1939 | туалет -л
0
root@имя_сервера /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511
--> уровень ОС -s
7200-04-01-1939
root@имя_сервера /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511
-->
Как видите, я не смог найти этот пакет... :(
Изменить № 2 ниже (в ответ на комментарий @Jeff Schaller)
root@имя_сервера /
--> instfix -ic | греп 7200-04 | грэп :-:
root@имя_сервера /
Боюсь, это ничего не вернуло.
Также я не уверен, что именно вы имеете в виду, когда говорите «... сервер понижен до уровня ожидаемой ОС ...». Разве это не наоборот? «oslevel -s» возвращает 1939 год в качестве даты сборки, в то время как все пакеты указывают, что дата сборки должна быть 1937 год. Разве это не «передний уровень»?