57 lines
1.5 KiB
Bash
Executable File
57 lines
1.5 KiB
Bash
Executable File
#!/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."
|
|
|