#!/bin/bash
# Status_Jetbackup
# Cek service jetbackup5d dan jetmongod. CRITICAL jika ada yang down / tidak ditemukan.
SERVICES=(jetbackup5d jetmongod)
UP=0
DOWN_LIST=()
MISSING_LIST=()
for SVC in "${SERVICES[@]}"; do
# Cek apakah unit file ada
if ! systemctl list-unit-files "${SVC}.service" >/dev/null 2>&1; then
MISSING_LIST+=("$SVC")
continue
fi
# Cek status aktif
if systemctl is-active --quiet "${SVC}.service"; then
((UP++))
else
DOWN_LIST+=("$SVC")
fi
done
EXPECTED=${#SERVICES[@]}
STATE=0
MSG="All JetBackup services running"
if ((${#MISSING_LIST[@]} > 0)) && ((${#DOWN_LIST[@]} > 0)); then
STATE=2
MSG="Missing: ${MISSING_LIST[*]} | Down: ${DOWN_LIST[*]}"
elif ((${#MISSING_LIST[@]} > 0)); then
STATE=2
MSG="Missing: ${MISSING_LIST[*]}"
elif ((${#DOWN_LIST[@]} > 0)); then
STATE=2
MSG="Down: ${DOWN_LIST[*]}"
fi
# Output local check (tanpa threshold; CRIT jika ada yang tidak up)
echo "$STATE Status_Jetbackup running=${UP};;;; expected=${EXPECTED};;;; - $MSG | JB_RUNNING=${UP} JB_EXPECTED=${EXPECTED}"