Provide a skript to delete VM disks in /lmn/vm

This commit is contained in:
Raphael Dannecker 2025-11-27 17:02:12 +01:00
parent 3ac7e99bb0
commit e7b2f7edd9
3 changed files with 51 additions and 0 deletions

View file

@ -3,6 +3,11 @@
%role-student ALL=(lmnsynci) NOPASSWD: /usr/local/bin/vm-sync %role-student ALL=(lmnsynci) NOPASSWD: /usr/local/bin/vm-sync
%examusers ALL=(lmnsynci) NOPASSWD: /usr/local/bin/vm-sync %examusers ALL=(lmnsynci) NOPASSWD: /usr/local/bin/vm-sync
# vm-delete: Delete VM-Images
%role-teacher ALL=(lmnsynci) NOPASSWD: /usr/local/bin/vm-delete
%role-student ALL=(lmnsynci) NOPASSWD: /usr/local/bin/vm-delete
%examusers ALL=(lmnsynci) NOPASSWD: /usr/local/bin/vm-delete
# vm-aria2: Start/Stop aria2 as systemd-service for VM-Images # vm-aria2: Start/Stop aria2 as systemd-service for VM-Images
lmnsynci ALL=(root) NOPASSWD: /usr/local/bin/vm-aria2 lmnsynci ALL=(root) NOPASSWD: /usr/local/bin/vm-aria2

45
roles/lmn_vm/files/vm-delete Executable file
View file

@ -0,0 +1,45 @@
#!/bin/bash
set -eu
directory="/lmn/vm"
if [ ! -d "$directory" ]; then
echo "No VM directory found."
exit 1
fi
qcow2_files=("$directory"/*.qcow2)
if [ "${#qcow2_files[@]}" -eq 0 ]; then
echo "Keine QCOW2-Dateien gefunden."
exit 0
fi
echo "Gefundene QCOW2-Dateien:"
echo "-------------------------------------------------------------"
printf "%-50s %10s\n" "Datei" "Größe (MB)"
echo "-------------------------------------------------------------"
for file in "${qcow2_files[@]}"; do
size=$(du -m "$file" | cut -f1) # Größe in MB
printf "%-50s %10d\n" "$file" "$size"
done
echo "-------------------------------------------------------------"
for file in "${qcow2_files[@]}"; do
read -rp "Möchtest du die Datei $file löschen? (j/n) " confirmation
if [[ "$confirmation" == "j" || "$confirmation" == "J" ]]; then
link_count=$(stat -c %h "$file")
rm "$file"
echo "$file wurde gelöscht."
if [ "$link_count" -gt 1 ]; then
echo "Achtung: $file hat noch $((link_count - 1)) weitere Hardlinks."
echo "Diese liegen evtl. unter:"
echo "- /var/tmp/${UID}/vm/ (temporäre VMs, werden automatisch beim Neustart gelöscht)"
echo "- /var/vm/${UID}/ (persistente VMs)"
fi
echo
fi
done

View file

@ -118,6 +118,7 @@
group: root group: root
mode: '0755' mode: '0755'
loop: loop:
- vm-delete
- vm-create - vm-create
- vm-rebase - vm-rebase
- vm-run - vm-run