prtg-linux-service-monitor/prtg-service-mon.sh
scriptos f9559e9ebd fix
2023-04-05 14:16:30 +02:00

43 lines
1.9 KiB
Bash

#!/bin/bash
# ____ ____ ____________
# / __ \/ __ \/_ __/ ____/
# / /_/ / /_/ / / / / / __
# / ____/ _, _/ / / / /_/ /
#/_/ /_/ |_| /_/ \____/
# NETWORK MONITOR
#-------------------
#(c) 2016 Dariusz Gorka, Paessler AG
#
#This script checks if a certain service is running.
#The script also tries to restart the service if it is not started.
#
#Enter the correct process name. (ps -e)
service=$1
#Enter the server address of your PRTG, including HTTPS/HTTP and the sensor port.
prtghost=$2
#Enter the Identification Token of the HTTP Push Data Advanced sensor.
identtoken=$3
#Check if process is running
if (( $(pgrep -x $service | wc -l) > 0 ))
then
#Send response to PRTG that the service is running.
wget -O/dev/null "$prtghost/$identtoken?content=<prtg><result><channel>$service status</channel><value>1</value></result><text>Service: $service is running!</text></prtg>"
else
#Send response to PRTG that the service is not started.
wget -O/dev/null "$prtghost/$identtoken?content=<prtg><result><channel>$service status</channel><value>0</value></result><text>Service: $service is down, but will restart!</text></prtg>"
#Try to restart the service
/etc/init.d/$service start
#Check if restart was successfully
if (( $(ps -ef | grep -v grep | grep $service | wc -l) > 0 ))
then
#Send response to PRTG that the restart was successfully
wget -O/dev/null "$prtghost/$identtoken?content=<prtg><result><channel>$service status</channel><value>1</value></result><text>Service: $service restarted properly!</text></prtg>"
else
#Send response to PRTG that the restart was not successful
wget -O/dev/null "$prtghost/$identtoken?content=<prtg><result><channel>$service status</channel><value>0</value></result><text>Service: $service can't restart properly! Please take action!</text></prtg>"
fi
fi