Comando não rodando no Nagios

Comando não rodando no Nagios

Alguém pode me esclarecer por que o código a seguir não está sendo executado quando o coloco em command_line para um comando personalizado do Nagios? Funciona quando executo no terminal.

command_name     notify-host-by-sms
commnad_line     echo -e "AT+CMGS="$CONTACTPAGER$"\r" | socat -t3 - TCP:XXX.XXX.XXX.XXX:10002 && echo -e "$HOSTNAME$ $HOSTSTATE$ $HOSTADDRESS$ $LONGDATETIME$\x1A" | socat - TCP:XXX.XXX.XXX.XXX:10002

Responder1

Não é possível usar |and &&no Nagios command_line, então você teria que agrupar isso como um script. (Além disso, não funcionaria com o commnad_lineerro de digitação.)

command_name  notify-host-by-sms
commnad_line  /usr/local/bin/notify-host-by-sms.sh $CONTACTPAGER$ $HOSTNAME$ $HOSTSTATE$ $HOSTADDRESS$ $LONGDATETIME$

E então use esses argumentos de linha de comando no script, por exemplo,

#!/bin/bash

echo -e "AT+CMGS=\"${1}\"\r" \
  | socat -t3 - TCP:192.0.2.1:10002 \
  || exit 1

echo -e "${2} ${3} ${4} ${5}\x1A" \
  | socat - TCP:192.0.2.1:10002 \
  || exit 1

(Eu adicionei uma cotação extra, porque AT+CMGS=pode ser necessário em torno do valor. Acredito que era sua intenção, mas eles simplesmente não foram escapados.)

informação relacionada