summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xinu.at>2015-03-15 23:51:26 +0100
committerFlorian Pritz <bluewind@xinu.at>2015-03-15 23:51:26 +0100
commit964185d1a267ddcf79ac3517bc7145a141ea3c32 (patch)
tree0e802b995092682b3adefc47cecbb9b5fc830ab4
parent1a0e2558fa5c27c77662834adb17357e3ecfdad7 (diff)
downloadbin-964185d1a267ddcf79ac3517bc7145a141ea3c32.tar.gz
bin-964185d1a267ddcf79ac3517bc7145a141ea3c32.tar.xz
add zfs snapshot helpers
Signed-off-by: Florian Pritz <bluewind@xinu.at>
-rwxr-xr-xzfs_create_dated_snapshot.sh12
-rwxr-xr-xzfs_snapshot_cleanup.sh14
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