From 564939053a48c6cdc9d5568de0a34566999f1836 Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 15 Jul 2025 01:49:11 +0200 Subject: [PATCH] miyagi-check.sh aktualisiert --- miyagi-check.sh | 48 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/miyagi-check.sh b/miyagi-check.sh index 1de760d..7cc34a5 100644 --- a/miyagi-check.sh +++ b/miyagi-check.sh @@ -2,6 +2,7 @@ set -euo pipefail IFS=$'\n\t' +PERMITROOT_YES_HOSTS=() LOG() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" } @@ -9,25 +10,24 @@ LOG() { CONFIG_FILE="${1:-}" if [[ -z "$CONFIG_FILE" ]]; then - LOG "❌ Keine Konfigurationsdatei übergeben." + LOG "Keine Konfigurationsdatei übergeben." echo "Usage: $0 /pfad/zur/config" exit 1 fi if [[ ! -f "$CONFIG_FILE" ]]; then - LOG "❌ Konfigurationsdatei nicht gefunden: $CONFIG_FILE" + LOG "Konfigurationsdatei nicht gefunden: $CONFIG_FILE" exit 1 fi if ! bash -n "$CONFIG_FILE"; then - LOG "❌ Syntaxfehler in der Konfigurationsdatei!" + LOG "Syntaxfehler in der Konfigurationsdatei!" exit 1 fi source "$CONFIG_FILE" REQUIRED_VARS=( - SOURCEHOST SOURCEPORT BACKUPSERVER ZSYNC @@ -106,7 +106,6 @@ check_and_copy_ssh_key() { LOG " Lokaler SSH-Public-Key ($keyfile) nicht gefunden!" return 1 fi - local pubkey pubkey=$(<"$keyfile") @@ -119,7 +118,7 @@ check_and_copy_ssh_key() { read -rp " Möchtest du den SSH-Key jetzt via ssh-copy-id übertragen? [j/N] " ans if [[ "$ans" =~ ^[JjYy]$ ]]; then - ssh-copy-id -p "$SSHPORT" "$host" + ssh-copy-id -p "$SOURCEPORT" "$host" else LOG " SSH-Key nicht übertragen." fi @@ -155,23 +154,48 @@ check_pveversion() { LOG " 'pveversion' ist auf $host nicht verfügbar – kein Proxmox?" fi } - +check_pbs_version() { + local host=$1 + local port=$2 + LOG "Prüfe PBS-Version auf $host ..." + if ssh -p "$port" "$host" "command -v proxmox-backup-manager >/dev/null"; then + ssh -p "$port" "$host" "proxmox-backup-manager version" | while read -r line; do + LOG " $host: $line" + done + else + LOG " 'proxmox-backup-manager' ist auf $host nicht verfügbar – kein PBS?" + fi +} run_host_check() { local host=$1 + local type=${2:-pve} + local port=$SOURCEPORT + local pbsport=$PBSPORT + LOG "" - LOG "=== Prüfung für Host: $host ===" - if check_ssh_connection "$host"; then + LOG "=== Prüfung für Host: $host (Typ: $type) ===" + + if check_ssh_connection "$host" "$port"; then check_and_copy_ssh_key "$host" check_sshd_config_recommendation "$host" - check_pveversion "$host" + + if [[ "$type" == "pve" ]]; then + check_pveversion "$host" "$port" + elif [[ "$type" == "pbs" ]]; then + check_pbs_version "$host" "$pbsport" + else + LOG " Unbekannter Host-Typ: $type" + fi fi echo "" } -run_host_check "$SOURCEHOST" + + +run_host_check "$SOURCEHOST" pve if [[ "$BACKUPSERVER" == "yes" ]]; then - run_host_check "$PBSHOST" + run_host_check "$PBSHOST" pbs else LOG " BACKUPSERVER ist deaktiviert PBSHOST wird übersprungen." fi