#!/bin/bash
#
# Initialisierung
stty -F /dev/ttyUSB0 19200 min 0 -icanon -ixon brkint imaxbel
echo -en '\0001\0001\0000\0000' > /dev/ttyUSB0
#
# Endlosschleife
while true ; do
LAMP=0
RESULT=`echo "
SELECT instance_id
FROM nagios_hoststatus
WHERE current_state <> 0
AND problem_has_been_acknowledged = 0;"
| mysql -u nagios -h db_host nagios | wc -l`
if (( $RESULT > 0 )) ; then
# Ein Host hat ein Problem -> Rotes Licht
echo -en '\0003\0001\0004\0006' > /dev/ttyUSB0
LAMP=1
# Lampe ist gesetzt
fi
if [[ $LAMP = "0" ]] ; then
RESULT=`echo "
SELECT nagios_servicestatus.service_object_id
FROM ((nagios_servicestatus
INNER JOIN nagios_services
ON nagios_servicestatus.service_object_id=nagios_services.service_object_id)
INNER JOIN nagios_hosts
ON nagios_services.host_object_id=nagios_hosts.host_object_id)
INNER JOIN nagios_hoststatus
ON nagios_hosts.host_id=nagios_hoststatus.hoststatus_id
WHERE nagios_servicestatus.current_state > 1 AND
nagios_servicestatus.problem_has_been_acknowledged=0 AND
nagios_hoststatus.problem_has_been_acknowledged=0;"
| mysql -u nagios -h db_host nagios | wc -l`
if (( $RESULT > 0 )) ; then
# Service ist kritisch -> Rote Lampe.
echo -en '\0003\0001\0004\0006' > /dev/ttyUSB0
LAMP=1
fi
fi
if [[ $LAMP = "0" ]] ; then
RESULT=`echo "
SELECT nagios_servicestatus.service_object_id
FROM ((nagios_servicestatus
INNER JOIN nagios_services
ON nagios_servicestatus.service_object_id=nagios_services.service_object_id)
INNER JOIN nagios_hosts
ON nagios_services.host_object_id=nagios_hosts.host_object_id)
INNER JOIN nagios_hoststatus
ON nagios_hosts.host_id=nagios_hoststatus.hoststatus_id
WHERE nagios_servicestatus.current_state = 1 AND
nagios_servicestatus.problem_has_been_acknowledged=0 AND
nagios_hoststatus.problem_has_been_acknowledged=0;"
| mysql -u nagios -h db_host nagios | wc -l`
if (( $RESULT > 0 )) ; then
# Service zeigt Warnung -> Gelbe Lampe.
echo -en '\0003\0001\0002\0000' > /dev/ttyUSB0
LAMP=1
fi
fi
if [[ $LAMP = "0" ]] ; then
# Keine Probleme -> GrĂ¼ne Lampe
echo -en '\0003\0001\0001\0003' > /dev/ttyUSB0
fi