![Befehl wird in Nagios nicht ausgeführt](https://rvso.com/image/789275/Befehl%20wird%20in%20Nagios%20nicht%20ausgef%C3%BChrt.png)
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_line
Tippfehler 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.)