diff options
-rwxr-xr-x | zfs_create_dated_snapshot.sh | 12 | ||||
-rwxr-xr-x | zfs_snapshot_cleanup.sh | 14 |
2 files changed, 26 insertions, 0 deletions
diff --git a/zfs_create_dated_snapshot.sh b/zfs_create_dated_snapshot.sh new file mode 100755 index 0000000..11f94ef --- /dev/null +++ b/zfs_create_dated_snapshot.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +if (($#<2)); then + echo "usage: ${0##*/} <filesystem|volume> <snapshot prefix>" + exit 1 +fi + +filesystem=$1 +snapshotname=$2 +date="$(date +%FT%H:%M)" + +zfs snapshot "${filesystem}@${snapshotname}${date}" diff --git a/zfs_snapshot_cleanup.sh b/zfs_snapshot_cleanup.sh new file mode 100755 index 0000000..ba743ac --- /dev/null +++ b/zfs_snapshot_cleanup.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +if (($#<3)); then + echo "usage: ${0##*/} <filesystem|volume> <snapshot prefix> <number of snapshots to keep>" + exit 1 +fi + +filesystem=$1 +snapshotname=$2 +keep=$3 + +keep=$((keep+1)) + +zfs list -H -t snapshot -o name -S creation -d1 "$filesystem" | grep "^$filesystem@$snapshotname" | tail -n +$keep | xargs -r -n 1 zfs destroy -r |