#!/bin/bash # Skript zum Löschen aller gestoppten LXCs auf dem lokalen Proxmox-Node # Verwendet pct destroy und berücksichtigt nur den lokalen Node # Überprüfen, ob das Skript als Root ausgeführt wird if [ "$(id -u)" -ne 0 ]; then echo "Dieses Skript muss als Root ausgeführt werden." >&2 exit 1 fi # Überprüfen, ob pct verfügbar ist if ! command -v pct &> /dev/null; then echo "pct ist nicht installiert. Bitte installieren Sie es zuerst." >&2 exit 1 fi # Alle gestoppten LXCs auf dem lokalen Node abrufen echo "Suche nach gestoppten LXCs auf diesem Node..." stopped_lxcs=$(pct list | awk '$2 == "stopped" {print $1}') if [ -z "$stopped_lxcs" ]; then echo "Keine gestoppten LXCs auf diesem Node gefunden." exit 0 fi echo "Gefundene gestoppte LXCs auf diesem Node:" echo "$stopped_lxcs" | while read -r lxc_id; do lxc_name=$(pct config $lxc_id | grep '^hostname:' | awk '{print $2}') echo " $lxc_id - $lxc_name" done # Bestätigung einholen read -p "Möchten Sie diese LXCs wirklich löschen? (y/n): " confirm if [[ ! "$confirm" =~ ^[Yy]$ ]]; then echo "Löschvorgang abgebrochen." exit 0 fi # LXCs löschen echo "Lösche gestoppte LXCs..." for lxc_id in $stopped_lxcs; do echo "Lösche LXC $lxc_id..." pct destroy $lxc_id if [ $? -eq 0 ]; then echo "LXC $lxc_id erfolgreich gelöscht." else echo "Fehler beim Löschen von LXC $lxc_id." >&2 fi done echo "Vorgang abgeschlossen."