CMD="${1}"; LOG="${2}"; N_HOST="${3}"; N_SERVICE="${4}"; ${CMD} >${LOG} 2>&1; EXITSTAT=${?}; OUTPUT="$(tail -1 ${LOG})";echo "${HOSTNAME}:${N_SERVICE}:${EXITSTAT}:${OUTPUT}" | send_nsca -H ${N_HOST} -d : -c /etc/nagios/send_nsca.cfg >/dev/null 2>&1
Эта команда представляет собой обертку Nagios, позволяющую удобно мониторить выполнение скриптов, cron-задач и других команд.
Она принимает следующие аргументы: CMD — команда, которую необходимо выполнить, LOG — путь к файлу для записи лога выполнения, N_HOST — имя хоста Nagios, N_SERVICE — имя сервиса Nagios.
Команда ${CMD} выполняется, результаты записываются в файл ${LOG}. 2>&1 привязывает stderr к stdout. После выполнения команды, переменная EXITSTAT получает код возврата команды. OUTPUT получает последнюю строку из файла лога.
Затем формируется сообщение вида «HOSTNAME:N_SERVICE:EXITSTAT:OUTPUT» и передается как входные данные для команды send_nsca.
send_nsca используется для отправки данных в Nagios. Он принимает аргументы -H ${N_HOST} (адрес сервера Nagios), -d : (разделитель полей в сообщении), -c /etc/nagios/send_nsca.cfg (путь к конфигурационному файлу send_nsca).
Затем сообщение отправляется в Нагиос для мониторинга, a >/dev/null 2>&1 используется для игнорирования вывода команды send_nsca.
Альтернативные способы создания обертки Nagios могут варьироваться в зависимости от контекста и требований.