#!/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."