0 0

Cleanup TrueNAS Scale snapshots

TrueNAS raid/DirectAdmin snapshot cleanup. Keep 12th, 26th of each month + last 2 weeks
sudo -i
Preview:
zfs list -t snapshot -o name -H | grep "^raid/DirectAdmin@auto-" | while read snap; do date_part=$(echo $snap | cut -d@ -f2 | sed 's/auto-//' | cut -d_ -f1); snap_date=$(date -d "$date_part" +%s 2>/dev/null || echo 0); two_weeks_ago=$(date -d "14 days ago" +%s); day=$(echo $date_part | cut -d- -f3); day_num=$((10#$day)); if [[ $snap_date -lt $two_weeks_ago && $day_num -ne 12 && $day_num -ne 26 ]]; then echo "Would delete: $snap"; fi; done
Delete:
zfs list -t snapshot -o name -H | grep "^raid/DirectAdmin@auto-" | while read snap; do date_part=$(echo $snap | cut -d@ -f2 | sed 's/auto-//' | cut -d_ -f1); snap_date=$(date -d "$date_part" +%s 2>/dev/null || echo 0); two_weeks_ago=$(date -d "14 days ago" +%s); day=$(echo $date_part | cut -d- -f3); day_num=$((10#$day)); if [[ $snap_date -lt $two_weeks_ago && $day_num -ne 12 && $day_num -ne 26 ]]; then echo "Deleting: $snap"; zfs destroy "$snap"; fi; done