Last active 1760505205

Z revised this gist 1760505204. Go to revision

1 file changed, 0 insertions, 0 deletions

zfs_release_holds renamed to zfs_release_holds.sh

File renamed without changes

Z revised this gist 1760505192. Go to revision

No changes

Z revised this gist 1760505174. Go to revision

No changes

Z revised this gist 1760505080. Go to revision

1 file changed, 28 insertions

zfs_release_holds(file created)

@@ -0,0 +1,28 @@
1 + # zfs.hold.release: $zfs_dataset $zfs_hold_name "mirror"
2 + # arc - archive
3 + # arc or mirror
4 + # How to check that all ZFS snapshots within a pool are without holds before destroying that pool - Server Fault - https://serverfault.com/questions/456301/how-to-check-that-all-zfs-snapshots-within-a-pool-are-without-holds-before-destr
5 + alias zfs.release="zfs.hold.release"
6 + zfs.hold.release(){
7 +
8 + zfs_dataset="${1:-""}"
9 + zfs_hold_name="${2:-"mirror"}"
10 + zfs_snapshot_userrefs="$(zfs get -Ht snapshot userrefs "$zfs_dataset" | grep -v $'\t'0 | cut -d $'\t' -f 1 )"
11 + zfs_snapshot_userref_count="$(zfs get -Ht snapshot userrefs "$zfs_dataset" | grep -v $'\t'0 | cut -d $'\t' -f 1 | wc -l )"
12 +
13 + echo zfs_snapshot_userref_count: $zfs_snapshot_userref_count
14 + if [[ -z "$zfs_snapshot_userref_count" ]] || [[ $zfs_snapshot_userref_count -lt 1 ]];then
15 + echo zfs_snapshot_userref_count must be greater than 0 else exit
16 + return 0
17 + fi
18 +
19 + snapshots=( $( echo "$zfs_snapshot_userrefs" | tr '\n' '\0' | xargs -0 zfs holds -H | grep "$zfs_hold_name" | awk '{ print $1 }' | tr '\n' ' ') )
20 +
21 + for snapshot in ${snapshots[@]}; do
22 + echo sudo zfs release $zfs_hold_name $snapshot
23 + sleep 1
24 + sudo zfs release $zfs_hold_name $snapshot
25 + done
26 +
27 + }
28 + # ---
Newer Older