39 lines
908 B
Bash
Executable File
39 lines
908 B
Bash
Executable File
#!/bin/bash
|
|
|
|
export LANG='en_US.UTF-8'
|
|
# set column width
|
|
COLUMNS=3
|
|
# colors
|
|
green="\e[1;32m"
|
|
red="\e[1;31m"
|
|
undim="\e[0m"
|
|
declare -A services
|
|
services["nginx"]="Nginx"
|
|
services["docker"]="Docker"
|
|
services["sshd"]="SSH"
|
|
services["plexmediaserver"]="Plex"
|
|
services["openvpn-server@server"]="OVPN-server"
|
|
services["smbd"]="Samba"
|
|
services["smartd"]="Smart"
|
|
# sort services
|
|
k=0
|
|
out=""
|
|
for i in "${!services[@]}"; do
|
|
((k++))
|
|
# color green if service is active, else red
|
|
service_status=($(systemctl is-active "$i"))
|
|
if [[ "${service_status}" == "active" ]]; then
|
|
out+="${services[$i]}:,${green}▲${undim},"
|
|
else
|
|
out+="${services[$i]}:,${red}▼${undim},"
|
|
fi
|
|
# insert \n every $COLUMNS column
|
|
if [ $((($k) % $COLUMNS)) -eq 0 ]; then
|
|
out+="\n"
|
|
fi
|
|
done
|
|
out+="\n"
|
|
|
|
printf "\nservices:\n"
|
|
printf "$out" | column -ts $',' | sed -e 's/^/ /'
|
|
# printf "$services" |