Сегодня мне потребовалось произвести некоторые действия на сервере, но только после того, как будет обновлен конкретный пакет в системе.
Как оказалось, уже есть готовое решение в виде плагина для yum под названием yum-plugin-post-transaction-actions.
Для его установки выполните команду
yum install -y yum-plugin-post-transaction-actions
После установки появится директория /etc/yum/post-actions/ где можно создавать файлы с правилами. Создаваемые файлы должны иметь расширение .action и иметь следующий формат
<пакет>:<команда>:<действие>
Где,
- <пакет> – может принимать вид полного названия пакета над которым производится действие в yum, так и название с маской
- <команда> – команда, которая выполняется пакетным менеджером: install, update, remove или any (любая из трех)
- <действие> – указывается действие, которое следует выполнить. Это может быть как команда, так и ссылка на скрипт
К примеру, после удаления wget нужно записать в файл /root/wget.txt произвольный текст.
Создаем файл /etc/yum/post-actions/wget.action со следующим содержимым
wget:remove:/bin/echo "ok" > /root/wget.txt
Или после обновления любого пакета с названием httpd сменить владельца на директорию /tmp/httpd
Создаем файл /etc/yum/post-actions/httpd.action с содержимым
httpd*:update:/bin/chown apache /tmp/httpd