#!/bin/bash # $HeadURL: https://svn.pasta.freemyip.com/main/miniade/trunk/bin/nop-sh $ $LastChangedRevision: 10133 $ # Modules . $(miniade) || { echo "${0##*/}: ERROR: miniade failed (hint: run 'miniade' to see error)" >&2; exit 1; } # Configurable stuff VTAPE=vtape009 # Other globals main() { local MY_ARGS # Defaults for options # Process options miniade_process_options MY_ARGS "$@" && set -- "${MY_ARGS[@]}" # Process arguments [ $# = 0 ] || usage # Sanity checks and derivations SET_AND_DLES=( $(sqlite3 -batch /var/lib/rdw2/rdw2.sqlite "select set_id || '/' || dle_id from dles where backup_method_id like 'rsync-over-zfs%' order by dle_id;") ) #miniade_info "checking all unmounted ..." #for SET_AND_DLE in "${SET_AND_DLES[@]}"; do # ZFS="$VTAPE/$SET_AND_DLE" # [ "X$(zfs get -H -o value mounted $ZFS 2>/dev/null)" = Xno ] || miniade_error "$ZFS: mounted" #done # Guts for SET_AND_DLE in "${SET_AND_DLES[@]}"; do ZFS="$VTAPE/$SET_AND_DLE" SNAPSHOTS_STR=( $(zfs list -H -o name -t snapshot $ZFS | sed -n 's/.*@//p' | paste -s -d,) ) if [ "X$SNAPSHOTS_STR" = X ]; then miniade_info "$ZFS: no snapshots" else miniade_info "$ZFS removing snapshots ..." miniade_evaler "zfs destroy $ZFS@$SNAPSHOTS_STR" fi done } main "$@"