Proxmox VE - tägliche Prüfung auf Updates, Installation der Updates und ggf. Neustart

Hier ist eine Anleitung, wie du per Cronjob Proxmox VE auf Updates überprüfst, diese installierst und anschließend neu startest.

Schritt 1: Skript erstellen

Erstelle ein Bash-Skript, das die folgenden Schritte durchführt:

  1. Update der Paketlisten.
  2. Installation der verfügbaren Updates.
  3. Neustart des Systems, wenn Updates installiert wurden.

Beispiel-Skript

Speichere das folgende Skript unter /root/proxmox-update.sh:

#!/bin/bash

# Protokoll-Datei
LOG_FILE="/var/log/proxmox-update.log"

echo "==== $(date) ====" >> $LOG_FILE
echo "Starte Paketlisten-Update..." >> $LOG_FILE

# Paketlisten aktualisieren
apt-get update >> $LOG_FILE 2>&1

# Prüfen, ob Updates verfügbar sind
UPDATES=$(apt-get --just-print upgrade | grep "Inst " | wc -l)

if [ $UPDATES -gt 0 ]; then
    echo "Es sind $UPDATES Updates verfügbar. Installation wird gestartet..." >> $LOG_FILE

    # Updates installieren
    apt-get -y dist-upgrade >> $LOG_FILE 2>&1

    if [ $? -eq 0 ]; then
        echo "Updates erfolgreich installiert. System wird neu gestartet..." >> $LOG_FILE

        # System neu starten
        reboot
    else
        echo "Fehler beim Installieren der Updates!" >> $LOG_FILE
        exit 1
    fi
else
    echo "Keine Updates verfügbar." >> $LOG_FILE
fi

echo "==== Ende ====" >> $LOG_FILE
exit 0

Schritt 2: Skript ausführbar machen

Setze die erforderlichen Berechtigungen für das Skript:

chmod +x /root/proxmox-update.sh

Schritt 3: Cronjob einrichten

Bearbeite die Cron-Tabelle mit folgendem Befehl:

crontab -e

Füge die folgende Zeile hinzu, um das Skript z. B. täglich um 2:00 Uhr auszuführen:

0 2 * * * /root/proxmox-update.sh

Schritt 4: Protokoll überprüfen

Das Skript schreibt alle Logs in /var/log/proxmox-update.log. Du kannst diese Datei überprüfen, um sicherzustellen, dass die Updates erfolgreich installiert und das System neu gestartet wurde:

tail -f /var/log/proxmox-update.log

Sicherheitshinweis

  1. Automatische Updates und Neustarts können riskant sein, insbesondere bei einem Produktivsystem. Stelle sicher, dass keine wichtigen VMs laufen, die von einem Neustart beeinträchtigt werden könnten.
  2. Du kannst den Neustart optional mit einem weiteren Check absichern, z. B. nur bei Kernel-Updates oder wenn eine bestimmte Bedingung erfüllt ist.