44 lines
1.3 KiB
Bash
Executable File
44 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
echo "=== Snapper Cleanup Script ==="
|
|
|
|
# 1. Show existing configs
|
|
echo "[*] Listing Snapper configs..."
|
|
snapper list-configs || { echo "No snapper configs found."; exit 0; }
|
|
|
|
# 2. For each config, list snapshots and ask to delete
|
|
for config in $(snapper list-configs | awk 'NR>1 {print $1}'); do
|
|
echo ""
|
|
echo "[*] Config: $config"
|
|
snapper -c "$config" list || true
|
|
read -rp "Delete ALL snapshots for config '$config'? [y/N] " ans
|
|
if [[ "$ans" =~ ^[Yy]$ ]]; then
|
|
echo " -> Deleting snapshots for $config"
|
|
snapper -c "$config" delete 1-999999 || true
|
|
fi
|
|
read -rp "Remove config '$config'? [y/N] " ans2
|
|
if [[ "$ans2" =~ ^[Yy]$ ]]; then
|
|
echo " -> Removing config $config"
|
|
snapper delete-config "$config" || true
|
|
fi
|
|
done
|
|
|
|
# 3. Optionally uninstall Snapper
|
|
read -rp "Do you also want to uninstall Snapper? [y/N] " ans3
|
|
if [[ "$ans3" =~ ^[Yy]$ ]]; then
|
|
if command -v zypper >/dev/null 2>&1; then
|
|
sudo zypper remove -y snapper
|
|
elif command -v dnf >/dev/null 2>&1; then
|
|
sudo dnf remove -y snapper
|
|
elif command -v apt >/dev/null 2>&1; then
|
|
sudo apt remove -y snapper
|
|
else
|
|
echo "Could not detect package manager. Please uninstall Snapper manually."
|
|
fi
|
|
else
|
|
echo "Snapper package left installed."
|
|
fi
|
|
|
|
echo "=== Snapper cleanup complete ==="
|