PiAutomation/RasPi-Config/monitor.service
Beeranco 6001dd0c20
Update monitor.service
Replaced ordering of variables.
Vars that won't change color or after rebooting are now static.
Vars that can change are added to the end of the script , this makes "reloading" the script much faster since the variables are now "prepared" for the next run.

Fixed oopsie in services, Offline tags stil had the old "stat" behind the service names.

Added check if var $DATE is empty do not display it onscreen.

Change UFW check behaviour, if UWF is not yet installed the var $UFW will be empty,
this sets the script to declare the UFW as inactive.

Added check if var $IP is empty do not display the available ports services run on since they won't be reachable.
2023-08-14 19:36:40 +02:00

117 lines
2.5 KiB
Desktop File

##---------------##
# Static-Vars #
##---------------##
GREEN='\033[1;32m'
RED='\033[1;31m'
RESET='\033[0m'
KERNEL=`uname -r`
##--------------##
# Start loop #
##--------------##
while :
do
clear
##------------##
# Services #
##------------##
systemctl is-active --quiet log2ram.service && L2R=Online || L2R=Offline
systemctl is-active --quiet domoticz.service && Domo=Online || Domo=Offline
systemctl is-active --quiet nodered.service && Node=Online || Node=Offline
systemctl is-active --quiet zigbee2mqtt.service && ZB2M=Online || ZB2M=Offline
systemctl is-active --quiet mosquitto.service && MQTT=Online || MQTT=Offline
##----------------##
# Display Info #
##----------------##
if [[ ! -z "$DATE" ]] ; then
echo $DATE
echo ""
fi
echo "OS status:"
if [[ -z "$IP" ]] ; then
echo -e "My IP is: ${RED}unavailable${RESET}"
else
echo "My IP is: $IP"
fi
echo "CPU usage: $CPUstat"
echo "RAM usage: $MEMstat"
if [[ $UFW == *in* ]] || [[ -z "$UFW" ]] ; then
echo -e "Firewall: ${RED}inactive${RESET}"
else
echo -e "Firewall: ${GREEN}active${RESET}"
fi
echo "Kernel $KERNEL"
echo ""
echo "Services:"
if [[ $L2R == Online ]]; then
echo -e "Log2Ram is: ${GREEN}online${RESET}"
else
echo -e "Log2Ram is: ${RED}offline${RESET}"
fi
if [[ $Domo == Online ]]; then
echo -e "Domoticz is: ${GREEN}online${RESET}"
else
echo -e "Domoticz is: ${RED}offline${RESET}"
fi
if [[ $Node == Online ]]; then
echo -e "Node-RED is: ${GREEN}online${RESET}"
else
echo -e "Node-RED is: ${RED}offline${RESET}"
fi
if [[ $ZB2M == Online ]]; then
echo -e "Zigbee2MQTT is: ${GREEN}online${RESET}"
else
echo -e "Zigbee2MQTT is: ${RED}offline${RESET}"
fi
if [[ $MQTT == Online ]]; then
echo -e "MQTT broker is: ${GREEN}online${RESET}"
else
echo -e "MQTT broker is: ${RED}offline${RESET}"
fi
if [[ ! -z "$IP" ]] ; then
echo ""
echo "Available ports:"
if [[ $Domo == Online ]]; then
echo "Domoticz is available on port: 8080"
fi
if [[ $Node == Online ]]; then
echo "Node-RED is available on port: 1880"
fi
if [[ $ZB2M == Online ]]; then
echo "Zigbee2MQTT is available on port: 5002"
fi
if [[ $MQTT == Online ]]; then
echo "MQTT broker is listening on port: 1883"
fi
fi
##-------------##
# Variables #
##-------------##
IP=`hostname -I`
DATE=`date "+%d-%m-%y %H:%M"`
CPUstat=`(top -bn1 | awk '/Cpu/ { print $2"%"}')`
MEMstat=`(free -m | awk '/Mem/{print $3"MB"}')`
UFW=`ufw status`
##----------------##
# Restart loop #
##----------------##
sleep 15
done