Initial: Mesh-Skills, Configs, Scripts
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
# Woechentliches Mesh-Hermes-Update: alle Agenten synchron updaten + verifizieren.
|
||||
# no_agent cron watchdog: stdout = Nachricht an Nutzer; leere Ausgabe = still.
|
||||
# ANPASSEN: PW, hosts[] (IP:Name), MASTER_HERMES/REMOTE_HERMES Pfade.
|
||||
set -u
|
||||
|
||||
SSHPASS='PW' # <<< Mesh-einheitliches Passwort eintragen
|
||||
SSH=(sshpass -p "$SSHPASS" ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no)
|
||||
MASTER_HERMES=/root/.local/bin/hermes
|
||||
REMOTE_HERMES='~/.local/bin/hermes'
|
||||
|
||||
hosts=(172.24.34.142:UnraidHermes 172.24.20.26:SwitchHermes 172.24.178.202:LaptopHermes)
|
||||
|
||||
report=""
|
||||
status_ok=1
|
||||
|
||||
# --- Master (lokal) ---
|
||||
if [ -x "$MASTER_HERMES" ]; then
|
||||
mver_before=$("$MASTER_HERMES" --version 2>/dev/null | head -1)
|
||||
"$MASTER_HERMES" update --yes >/tmp/hermes_upd_master.log 2>&1
|
||||
mver_after=$("$MASTER_HERMES" --version 2>/dev/null | head -1)
|
||||
report+="Master: ${mver_before##*v} -> ${mver_after##*v}\n"
|
||||
[ "$mver_before" != "$mver_after" ] || report+=" (kein Update noetig)\n"
|
||||
else
|
||||
report+="Master: hermes nicht gefunden\n"; status_ok=0
|
||||
fi
|
||||
|
||||
# --- Sub-Agenten (per SSH) ---
|
||||
for entry in "${hosts[@]}"; do
|
||||
ip="${entry%%:*}"; name="${entry##*:}"
|
||||
out=$("${SSH[@]}" "mehlzoerwer@$ip" \
|
||||
"$REMOTE_HERMES update --yes 2>&1 | tail -1; $REMOTE_HERMES --version 2>/dev/null | head -1" 2>/dev/null)
|
||||
if [ -n "$out" ]; then
|
||||
ver=$(echo "$out" | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' | head -1)
|
||||
report+="$name: $ver\n"
|
||||
else
|
||||
report+="$name: KEINE VERBINDUNG / FEHLER\n"; status_ok=0
|
||||
fi
|
||||
done
|
||||
|
||||
report="Hermes-Mesh Update ($(date '+%d.%m. %H:%M')):\n$report"
|
||||
[ $status_ok -eq 1 ] && report+="Status: alle ok" || report+="Status: PROBLEM - bitte pruefen!"
|
||||
|
||||
printf '%b' "$report"
|
||||
Reference in New Issue
Block a user