.
This commit is contained in:
56
vbox_clean.sh
Executable file
56
vbox_clean.sh
Executable 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."
|
||||
|
||||
Reference in New Issue
Block a user