pve-kernel-cleaner.sh hinzugefügt
This commit is contained in:
@@ -0,0 +1,93 @@
|
|||||||
|
#!/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 ===="
|
||||||
Reference in New Issue
Block a user