84 lines
1.7 KiB
Bash
84 lines
1.7 KiB
Bash
#!/usr/bin/env bash
|
|
# ==============================================================================
|
|
# 🐧 BASH 05: MUSTERLÖSUNG
|
|
# ==============================================================================
|
|
|
|
analysiere_pfad_status() {
|
|
local pfad="$1"
|
|
if [[ ! -e "$pfad" ]]; then
|
|
echo "NOT_FOUND"
|
|
elif [[ -d "$pfad" ]]; then
|
|
echo "DIRECTORY"
|
|
elif [[ -f "$pfad" && -x "$pfad" ]]; then
|
|
echo "EXECUTABLE_FILE"
|
|
elif [[ -f "$pfad" ]]; then
|
|
echo "REGULAR_FILE"
|
|
else
|
|
echo "OTHER"
|
|
fi
|
|
}
|
|
|
|
validiere_ipv4_format() {
|
|
local ip="$1"
|
|
if [[ $ip =~ ^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$ ]]; then
|
|
local o1="${BASH_REMATCH[1]}"
|
|
local o2="${BASH_REMATCH[2]}"
|
|
local o3="${BASH_REMATCH[3]}"
|
|
local o4="${BASH_REMATCH[4]}"
|
|
|
|
if (( o1 <= 255 && o2 <= 255 && o3 <= 255 && o4 <= 255 )); then
|
|
return 0
|
|
fi
|
|
fi
|
|
return 1
|
|
}
|
|
|
|
bewerte_server_metrik() {
|
|
local cpu="$1"
|
|
local ram="$2"
|
|
if (( cpu >= 90 || ram >= 90 )); then
|
|
echo "CRITICAL"
|
|
elif (( cpu >= 75 || ram >= 75 )); then
|
|
echo "WARNING"
|
|
else
|
|
echo "OK"
|
|
fi
|
|
}
|
|
|
|
service_dispatcher() {
|
|
local aktion="$1"
|
|
local service_name="$2"
|
|
|
|
case "$aktion" in
|
|
start)
|
|
echo "Starte $service_name..."
|
|
;;
|
|
stop)
|
|
echo "Stoppe $service_name..."
|
|
;;
|
|
restart|reload)
|
|
echo "Starte $service_name neu..."
|
|
;;
|
|
status)
|
|
echo "Pruefe Status von $service_name..."
|
|
;;
|
|
*)
|
|
echo "Unbekannte Aktion: $aktion"
|
|
return 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
fuehre_sicher_aus() {
|
|
local befehl="$1"
|
|
eval "$befehl" >/dev/null 2>&1
|
|
local exit_code=$?
|
|
|
|
if [[ $exit_code -eq 0 ]]; then
|
|
echo "SUCCESS"
|
|
return 0
|
|
else
|
|
echo "ERROR_CODE: $exit_code"
|
|
return $exit_code
|
|
fi
|
|
}
|