El comando no se ejecuta en Nagios

El comando no se ejecuta en Nagios

¿Alguien puede aclararme por qué el siguiente código no se ejecuta cuando lo coloco en la línea de comandos para un comando personalizado de Nagios? Funciona cuando lo ejecuto en la 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

Respuesta1

No es posible usar |and &&en Nagios command_line, por lo que tendrías que empaquetar esto como un script. (Además, no funcionaría con el commnad_lineerror tipográfico).

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

Y luego use esos argumentos de línea de comando en el script, por ejemplo,

#!/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

(Agregué citas adicionales, porque AT+CMGS=es posible que las necesiten en torno al valor. Creo que era su intención, pero simplemente no estaban disponibles).

información relacionada