Skip to content

Commit 98b7a8f

Browse files
committed
Merge pull request adaugherity#3 from dnozay/variable
Use variables for local/remote paths to zfs binary.
2 parents 4eb8815 + 0bbf585 commit 98b7a8f

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

zfs-backup.sh

+15-13
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ DEBUG="" # set to non-null to enable debug (dry-run)
6262
VERBOSE="" # "-v" for verbose, null string for quiet
6363
LOCK="/var/tmp/zfsbackup.lock"
6464
CFG="/var/lib/zfssnap/zfs-backup.cfg"
65+
ZFS="/usr/sbin/zfs"
6566

6667
# local settings -- datasets to back up are now found by property
6768
TAG="zfs-auto-snap_daily"
@@ -70,6 +71,7 @@ PROP="edu.tamu:backuptarget"
7071
REMUSER="zfsbak"
7172
REMHOST="backupserver.my.domain"
7273
REMPOOL="backuppool"
74+
REMZFS="/usr/sbin/zfs"
7375

7476

7577
usage() {
@@ -151,17 +153,17 @@ do_backup() {
151153
fi
152154

153155
if [ $RECENT -gt 1 ]; then
154-
newest_local="$(/usr/sbin/zfs list -t snapshot -H -S creation -o name -d 1 $DATASET | grep $TAG | awk NR==$RECENT)"
156+
newest_local="$($ZFS list -t snapshot -H -S creation -o name -d 1 $DATASET | grep $TAG | awk NR==$RECENT)"
155157
msg="using local snapshot ($(ord $RECENT) most recent):"
156158
else
157-
newest_local="$(/usr/sbin/zfs list -t snapshot -H -S creation -o name -d 1 $DATASET | grep $TAG | head -1)"
159+
newest_local="$($ZFS list -t snapshot -H -S creation -o name -d 1 $DATASET | grep $TAG | head -1)"
158160
msg="newest local snapshot:"
159161
fi
160162
snap2=${newest_local#*@}
161163
[ "$DEBUG" -o "$VERBOSE" ] && echo "$msg $snap2"
162164

163165
# needs public key auth configured beforehand
164-
newest_remote="$(ssh -n $REMUSER@$REMHOST /usr/sbin/zfs list -t snapshot -H -S creation -o name -d 1 $TARGET | grep $TAG | head -1)"
166+
newest_remote="$(ssh -n $REMUSER@$REMHOST $REMZFS list -t snapshot -H -S creation -o name -d 1 $TARGET | grep $TAG | head -1)"
165167
if [ -z $newest_remote ]; then
166168
echo "Error fetching remote snapshot listing via ssh to $REMUSER@$REMHOST." >&2
167169
[ $DEBUG ] || touch $LOCK
@@ -170,7 +172,7 @@ do_backup() {
170172
snap1=${newest_remote#*@}
171173
[ "$DEBUG" -o "$VERBOSE" ] && echo "newest remote snapshot: $snap1"
172174

173-
if ! /usr/sbin/zfs list -t snapshot -H $DATASET@$snap1 > /dev/null 2>&1; then
175+
if ! $ZFS list -t snapshot -H $DATASET@$snap1 > /dev/null 2>&1; then
174176
exec 1>&2
175177
echo "Newest remote snapshot '$snap1' does not exist locally!"
176178
echo "Perhaps it has been already rotated out."
@@ -181,7 +183,7 @@ do_backup() {
181183
[ $DEBUG ] || touch $LOCK
182184
return 1
183185
fi
184-
if ! /usr/sbin/zfs list -t snapshot -H $DATASET@$snap2 > /dev/null 2>&1; then
186+
if ! $ZFS list -t snapshot -H $DATASET@$snap2 > /dev/null 2>&1; then
185187
exec 1>&2
186188
echo "Something has gone horribly wrong -- local snapshot $snap2"
187189
echo "has suddenly disappeared!"
@@ -195,20 +197,20 @@ do_backup() {
195197
fi
196198

197199
# sanity checking of snapshot times -- avoid going too far back with -r
198-
snap1time=$(/usr/sbin/zfs get -Hp -o value creation $DATASET@$snap1)
199-
snap2time=$(/usr/sbin/zfs get -Hp -o value creation $DATASET@$snap2)
200+
snap1time=$($ZFS get -Hp -o value creation $DATASET@$snap1)
201+
snap2time=$($ZFS get -Hp -o value creation $DATASET@$snap2)
200202
if [ $snap2time -lt $snap1time ]; then
201203
echo "Error: target snapshot $snap2 is older than $snap1!"
202204
echo "Did you go too far back with '-r'?"
203205
return 1
204206
fi
205207

206208
if [ $DEBUG ]; then
207-
echo "would run: /usr/sbin/zfs send -R -I $snap1 $DATASET@$snap2 |"
208-
echo " ssh $REMUSER@$REMHOST /usr/sbin/zfs recv $RECV_OPT -vF $REMPOOL"
209+
echo "would run: $ZFS send -R -I $snap1 $DATASET@$snap2 |"
210+
echo " ssh $REMUSER@$REMHOST $REMZFS recv $RECV_OPT -vF $REMPOOL"
209211
else
210-
if ! pfexec /usr/sbin/zfs send -R -I $snap1 $DATASET@$snap2 | \
211-
ssh $REMUSER@$REMHOST /usr/sbin/zfs recv $VERBOSE $RECV_OPT -F $REMPOOL; then
212+
if ! pfexec $ZFS send -R -I $snap1 $DATASET@$snap2 | \
213+
ssh $REMUSER@$REMHOST $REMZFS recv $VERBOSE $RECV_OPT -F $REMPOOL; then
212214
echo 1>&2 "Error sending snapshot."
213215
touch $LOCK
214216
return 1
@@ -237,13 +239,13 @@ fi
237239

238240
FAIL=0
239241
# get the datasets that have our backup property set
240-
COUNT=$(/usr/sbin/zfs get -s local -H -o name,value $PROP | wc -l)
242+
COUNT=$($ZFS get -s local -H -o name,value $PROP | wc -l)
241243
if [ $COUNT -lt 1 ]; then
242244
echo "No datasets configured for backup! Please set the '$PROP' property"
243245
echo "appropriately on the datasets you wish to back up."
244246
exit 2
245247
fi
246-
/usr/sbin/zfs get -s local -H -o name,value $PROP |
248+
$ZFS get -s local -H -o name,value $PROP |
247249
while read dataset value
248250
do
249251
case $value in

0 commit comments

Comments
 (0)