pve-kernel-cleaner.sh gelöscht

This commit is contained in:
2025-06-20 21:40:55 +02:00
parent 749cdb6d42
commit fc40ca5e4c
-93
View File
@@ -1,93 +0,0 @@
#!/bin/bash
# === PVE Kernel Cleaner Script ===
# Kompatibel mit EFI & BIOS, erkennt ZFS Pools und prüft Belegung
# Erkennt auch Subscription-Status
# Autor: OpenAI (angepasst für deine Anforderungen)
# Datum: 2025-06-20
set -e
echo "==== PVE Kernel Cleaner ===="
echo ""
# 1. Prüfen ob EFI oder BIOS
if [ -d /sys/firmware/efi ]; then
echo "Bootmodus: EFI"
else
echo "Bootmodus: BIOS (Legacy)"
fi
# 1.1 Subscription-Status prüfen
echo ""
echo "APT-Repositories:"
repo_files=$(find /etc/apt/ -name "*.list")
if grep -rq "enterprise.proxmox.com" $repo_files; then
echo "PVE Enterprise Repository (Subscription) ist aktiv"
elif grep -rq "no-subscription" $repo_files; then
echo "PVE No-Subscription Repository ist aktiv"
else
echo "Kein bekanntes PVE Repository aktiv ,prüfe apt-Sources manuell"
fi
echo ""
# 2. ZFS Pools prüfen
echo "ZFS Pool Übersicht:"
if command -v zpool &> /dev/null; then
zpool list -Ho name,capacity | while read -r pool cap; do
cap_num=$(echo $cap | tr -d '%')
warn=""
if (( cap_num >= 80 )); then
warn="ACHTUNG: >80% belegt"
fi
echo "$pool: $cap $warn"
done
else
echo "ZFS ist nicht installiert oder zpool-Befehl nicht verfügbar."
fi
echo ""
# 3. Liste der installierten PVE-Kernel anzeigen
echo "Installierte PVE-Kernel:"
kernel_list=$(dpkg --list | grep pve-kernel | awk '{print $2}' | sort -V)
current_kernel=$(uname -r | cut -d '-' -f1-2)
to_remove=()
while read -r kernel; do
version=$(echo "$kernel" | sed -n 's/^pve-kernel-\([0-9.]*-[0-9]*\).*/\1/p')
if [ "$version" == "$current_kernel" ]; then
echo " * $kernel (aktuell in Verwendung)"
else
echo " - $kernel (alt)"
to_remove+=("$kernel")
fi
done <<< "$kernel_list"
echo ""
if [ ${#to_remove[@]} -eq 0 ]; then
echo "Keine alten Kernel gefunden , nichts zu tun."
exit 0
fi
# 4. Nutzerabfrage zur Entfernung
echo "Die folgenden alten Kernel könnten entfernt werden:"
for k in "${to_remove[@]}"; do
echo " - $k"
done
echo ""
read -p "❓ Möchtest du diese alten Kernel jetzt entfernen? (j/n): " confirm
if [[ "$confirm" =~ ^[Jj]$ ]]; then
echo "Entferne alte Kernel..."
apt remove --purge -y "${to_remove[@]}"
echo "Alte Kernel wurden entfernt."
else
echo "Abbruch ,keine Kernel wurden entfernt."
fi
echo ""
echo "==== Fertig ===="