I am trying to equal something from last command with bash if statement:
#!/bin/bash
monit status
if [ "status" != "error" ]; then
echo -e "hostname\ttest\t0\t0" | /usr/sbin/send_nsca -H hostname -c /etc/send_nsca.cfg
exit 1;
fi
Even if the monit status
gives out status = online with all services
it runs the echo command. I can not figure out how to make the if
statement match the status of monit status
output.
Answer
You are comparing the static strings status
vs. error
.
There are several ways to go about this. For capturing the output of the command in a variable, use
STATUS=`monit status`
or
STATUS=$(monit status)
For a simple case as your's, I would go for a simple
if monit status | grep -q error ; then
...
fi
Comments
Post a Comment