Контрольное число незаконченных обновлений системы защиты в Ubuntu

Позвольте мне запуститься путем высказывания, что мне запретили включить автоматические обновления на наших серверах Ubuntu, и для безопасности и для регулярных пакетов.

Когда я вхожу в любой из своих четырех серверов Ubuntu, желанное сообщение содержит это:

39 packages can be updated.
26 updates are security updates.

Однако, когда я выполняю плагин Nagios, который контролирует APT, я добираюсь:

% /usr/lib/nagios/plugins/check_apt
APT WARNING: 33 packages available for upgrade (0 critical updates). 

Я должен знать, как правильно обнаружить, что там ожидают обновления системы защиты и регулярные обновления. После того как я могу сделать это, я планирую записать сценарий Nagios, который возвратит ПРЕДУПРЕЖДЕНИЕ для незаконченных регулярных обновлений, и ОЧЕНЬ ВАЖНЫЙ для незаконченных обновлений системы защиты.

Кто-либо знает, как обнаружить те два условия?

25
задан 15.10.2010, 20:16

1 ответ

Оказывается, что количество незаконченных регулярных обновлений может быть найдено с помощью:

/usr/lib/update-notifier/apt-check 2>&1 | cut -d ';' -f 1

И количество незаконченных обновлений системы защиты может быть найдено с помощью:

/usr/lib/update-notifier/apt-check 2>&1 | cut -d ';' -f 2

В конце мой плагин Nagios был следующие:

#!/bin/sh
#
# Standard Nagios plugin return codes.
STATUS_OK=0
STATUS_WARNING=1
STATUS_CRITICAL=2
STATUS_UNKNOWN=3

# Query pending updates.
updates=$(/usr/lib/update-notifier/apt-check 2>&1)
if [ $? -ne 0 ]; then
    echo "Querying pending updates failed."
    exit $STATUS_UNKNOWN
fi

# Check for the case where there are no updates.
if [ "$updates" = "0;0" ]; then
    echo "All packages are up-to-date."
    exit $STATUS_OK
fi

# Check for pending security updates.
pending=$(echo "${updates}" | cut -d ";" -f 2)
if [ "$pending" != "0" ]; then
    echo "${pending} security update(s) pending."
    exit $STATUS_CRITICAL
fi

# Check for pending non-security updates.
pending=$(echo "${updates}" | cut -d ";" -f 1)
if [ "$pending" != "0" ]; then
    echo "${pending} non-security update(s) pending."
    exit $STATUS_WARNING
fi

# If we've gotten here, we did something wrong since our "0;0" check should have
# matched at the very least.
echo "Script failed, manual intervention required."
exit $STATUS_UNKNOWN
31
ответ дан 07.12.2019, 09:38

Теги

Похожие вопросы