FAQ | This is a LIVE service | Changelog

Commit 48485319 authored by Dr Adam Thorn's avatar Dr Adam Thorn
Browse files

Add script to report the space that would be reclaimed by deleting older snapshots

parent 73ad8e1d
......@@ -3,6 +3,6 @@ Priority: optional
Section: otherosfs
Maintainer: Chemistry COs <support@ch.cam.ac.uk>
Architecture: all
Version: 0.9-ch95
Version: 0.9-ch96
Depends: zfs-dkms, postgresql-13 | postgresql-9.5 | postgresql-9.4 , liblockfile-simple-perl, libdbi-perl, libjson-perl, libzfs-perl-chem, libnet-openssh-perl, libdbd-pg-perl, mbuffer, rsync, nfs-kernel-server, pv, libwww-curl-perl
Description: a backup system using ZFS (repository 'backup-scheduler')
#!/bin/bash
# This script runs "zfs destroy" commands. We explicitly specify "-nv" options,
# and I can't currently think of a way it would go wrong, but there is no reason
# for this script to be run as root and I want to avoid accidents.
if [ $EUID -eq 0 ]; then
echo "You appear to be running this script as root. Please run it as unprivileged user instead."
exit 1
fi
if [ $# -ne 1 ] ; then
echo usage: $0 zfsname
echo
echo Prints out a report of the space that would be reclaimed by successfully
echo deleting snapshots of a ZFS, from the oldest through to the newest.
fi
ZFS=$1
if ! zfs list $ZFS >/dev/null 2>&1 ; then
echo could not list $ZFS
exit 1
fi
OLDEST=$(zfs list -H -t snapshot -oname $ZFS | head -n 1 | cut -d '@' -f 2)
ALLSNAPS=$(zfs list -H -t snapshot -oname $ZFS | cut -d '@' -f 2)
# NB the following two commands give the same output:
# zfs destroy -nv $ZFS@1654118566
# zfs destroy -nv $ZFS@1654118566%1654118566 # i.e. specifying the same snapshot as the start and end of the range
# so we don't need to special-case how we handle ${OLDEST}
for SNAP in $ALLSNAPS; do
RECLAIM=$(zfs destroy -nv ${ZFS}@${OLDEST}%${SNAP} | grep "would reclaim" | awk '{print $3}')
echo "$OLDEST -> $SNAP : $RECLAIM"
done
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment