30 lines
549 B
Bash
Executable File
30 lines
549 B
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Create zfs snapshots for $DATASET
|
|
# https://github.com/bahamas10/zfs-prune-snapshots
|
|
#
|
|
|
|
#set -x
|
|
|
|
while getopts d:e: flag
|
|
do
|
|
case "${flag}" in
|
|
d) DATASET=${OPTARG};;
|
|
e) EXPIRATION=${OPTARG};;
|
|
esac
|
|
done
|
|
|
|
DATE=$(date '+%Y-%m-%d %H:%M:%S')
|
|
|
|
TS=$(date '+%s')
|
|
ZFS=$(which zfs)
|
|
CMD="$ZFS snapshot ${DATASET}@snap${TS}"
|
|
echo "[${DATE}] $CMD"
|
|
$CMD 2>&1 > /dev/null
|
|
|
|
ZFS_PRUNE_SNAPSHOTS=$(which zfs-prune-snapshots)
|
|
CMD="$ZFS_PRUNE_SNAPSHOTS -p 'snap' $EXPIRATION $DATASET"
|
|
echo "[${DATE}] $CMD"
|
|
$CMD 2>&1 > /dev/null
|
|
|