Befehl wird in Nagios nicht ausgeführt

Befehl wird in Nagios nicht ausgeführt

Kann mir jemand erklären, warum der folgende Code nicht ausgeführt wird, wenn ich ihn in die Befehlszeile für einen benutzerdefinierten Nagios-Befehl einfüge? Er funktioniert, wenn ich ihn im Terminal ausführe.

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

Antwort1

|Es ist nicht möglich, und &&in Nagios zu verwenden command_line, Sie müssten dies also als Skript einbinden. (Außerdem würde es mit dem commnad_lineTippfehler nicht funktionieren.)

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

Und dann verwenden Sie diese Befehlszeilenargumente im Skript, z. B.

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

(Ich habe zusätzliche Anführungszeichen hinzugefügt, da AT+CMGS=sie möglicherweise um den Wert herum erforderlich sind. Ich glaube, das war Ihre Absicht, aber sie wurden einfach nicht maskiert.)

verwandte Informationen