Script

#!/bin/bash

distro_codename=$(lsb_release -cs)
FILE="/etc/apt/apt.conf.d/50unattended-upgrades"

# Funktion zum Setzen oder Ersetzen einer Konfigurationszeile
set_config() {
    local key=$1
    local value=$2
    local file=$3

    if grep -q "^//${key}" "$file"; then
        # Entkommentieren und den Wert setzen
        sed -i "s|^//${key}.*|${key} ${value};|" "$file"
    elif grep -q "^${key}" "$file"; then
        # Wert aktualisieren
        sed -i "s|^${key}.*|${key} ${value};|" "$file"
    else
        # Neue Zeile hinzufügen
        echo "${key} ${value};" >> "$file"
    fi
}

# Einstellungen für Unattended-Upgrades
set_config 'Unattended-Upgrade::Allowed-Origins' '{ "origin=Debian,codename=${distro_codename}-security"; }' "$FILE"
set_config 'Unattended-Upgrade::Automatic-Reboot' 'true' "$FILE"
set_config 'Unattended-Upgrade::Automatic-Reboot-Time' '"02:00"' "$FILE"

# Zusätzliche Einstellungen können hier hinzugefügt werden
# z.B. Automatisches Entfernen von nicht mehr benötigten Paketen
set_config 'Unattended-Upgrade::Remove-Unused-Dependencies' 'true' "$FILE"

# Konfiguration zum Senden von E-Mails (Optional)
EMAIL="[email protected]"
if ! grep -q "^Unattended-Upgrade::Mail" "$FILE"; then
    echo "Unattended-Upgrade::Mail \"$EMAIL\";" >> "$FILE"
else
    sed -i "s|^Unattended-Upgrade::Mail.*|Unattended-Upgrade::Mail \"$EMAIL\";|" "$FILE"
fi

# Update-Paketlisten und Konfigurationen neu laden
apt-get update
dpkg-reconfigure -plow unattended-upgrades

echo "Unattended-Upgrades konfiguriert und aktiviert."

Last updated