Files
proxmoxscripts/bin/cleanReplicaSnapshot.sh
2026-01-21 11:03:33 +01:00

41 lines
1.4 KiB
Bash

#!/bin/bash
# Verifica se il parametro --force è presente
DRY_RUN=true
if [[ "$1" == "--force" ]]; then
DRY_RUN=false
fi
echo "--------------------------------------------------------"
echo "--- Snapshot di replica più vecchi di 24 ore ---"
echo "--------------------------------------------------------"
# Troviamo gli snapshot, calcoliamo la data di creazione e filtriamo
zfs list -t snapshot -H -o name,creation | grep "__replicate_" | while read -r line; do
SNAP_NAME=$(echo $line | awk '{print $1}')
# Estraiamo la data (formato semplice per confronto)
CREATION_DATE=$(echo $line | awk '{print $2" "$3" "$4" "$5" "$6}')
# Trasformiamo la data in secondi per il confronto
SNAP_SEC=$(date -d "$CREATION_DATE" +%s)
NOW_SEC=$(date +%s)
DIFF_HOURS=$(( ($NOW_SEC - $SNAP_SEC) / 3600 ))
if [ $DIFF_HOURS -gt 24 ]; then
if [ "$DRY_RUN" = true ]; then
echo "DA ELIMINARE: $SNAP_NAME (Età: $DIFF_HOURS ore)"
# Qui non eseguiamo il comando reale
else
echo "Eliminazione effettiva dello snapshot: $snapshot"
zfs destroy $SNAP_NAME
fi
fi
done
if [ "$DRY_RUN" = true ]; then
echo "--------------------------------------------------------"
echo ""
echo "Operazione completata in modalità simulazione."
echo "Per eliminare realmente, usa: $0 --force"
fi