This commit is contained in:
2025-08-24 17:01:55 +02:00
parent e4ba81c63d
commit fe5fe5b80d
5 changed files with 185 additions and 2 deletions

56
vbox_clean.sh Executable file
View File

@@ -0,0 +1,56 @@
#!/bin/bash
# Basisverzeichnis mit User-Ordnern, die VMs enthalten
VM_BASE_DIR="/srv/vbox_storage"
# VBoxManage-Binary Pfad (kann angepasst werden, wenn VBoxManage nicht im PATH ist)
VBOXMANAGE=$(which VBoxManage)
if [ -z "$VBOXMANAGE" ]; then
echo "Fehler: VBoxManage nicht gefunden. Bitte VirtualBox installieren oder PATH prüfen."
exit 1
fi
# Alle registrierten VMs sammeln (Namen)
registered_vms=$($VBOXMANAGE list vms | awk '{print $1}' | tr -d '"')
echo "Gefundene registrierte VMs:"
echo "$registered_vms"
echo
# Funktion: Prüft, ob ein VM-Name registriert ist
is_vm_registered() {
local vm_name="$1"
if echo "$registered_vms" | grep -qx "$vm_name"; then
return 0 # registriert
else
return 1 # nicht registriert
fi
}
echo "Starte Aufräumen im Verzeichnis $VM_BASE_DIR"
# User-Ordner durchlaufen
for user_dir in "$VM_BASE_DIR"/*; do
if [ -d "$user_dir" ]; then
echo "Prüfe User-Ordner: $(basename "$user_dir")"
# VM-Ordner im User-Ordner durchlaufen
for vm_dir in "$user_dir"/*; do
if [ -d "$vm_dir" ]; then
vm_folder_name=$(basename "$vm_dir")
if is_vm_registered "$vm_folder_name"; then
echo " VM-Ordner '$vm_folder_name' ist registriert. Kein Löschen."
else
echo " VM-Ordner '$vm_folder_name' NICHT registriert. Lösche Ordner..."
rm -rf "$vm_dir"
echo " Ordner '$vm_folder_name' gelöscht."
fi
fi
done
fi
done
echo "Aufräumen abgeschlossen."