#!/bin/bash
#
# usage: snaprsync <setting>... <positionals>
-# <setting> is ---<name>=<value>
+# <setting> is --<name>=<value>
# <positionals> are assigned to unused mandatory values in order
# mandatory:
# rhost device mountpoint localarea
retcdir=/etc/chiark-backup
rvardir=/var/lib/chiark-backup
bwlimit=
+ subdir=.
set -e
value=${1#--*=}
case "$name" in
rhost|device|mountpoint|localarea);;
- localprevious|rsharedir|retcdir|rvardir|bwlimit);;
+ localprevious|snapkind|rsharedir|retcdir|rvardir|bwlimit);;
+ subdir);;
*) badusage "unknown setting $name";;
esac
eval "$name=\$value"
exec 4<>$td/sentinel
x ssh $rhost "$sshpfx $rsharedir/snap-drop"
+ssh $rhost "
+ $sshpfx
+ set -e
+ cd $rvardir
+ echo '$retcdir/snap/$snapkind drop $rvardir' >snap-drop.new
+ mv snap-drop.new snap-drop
+"
x ssh $rhost "$sshpfx $retcdir/snap/$snapkind snap $rvardir $device $mountpoint"
ssh $rhost <$td/sentinel 4<&- "
$sshpfx
xspawned rsum
x $rsync -aHSxz --numeric-ids --delete \
${localprevious:+--link-dest} $localprevious \
- $rhost:$rvardir/snap-mount/. $localarea/.
+ $rhost:$rvardir/snap-mount/$subdir $localarea/.
date -u "+ $datefmt rsyncdone"
exec 3>$localarea,lsums
(cd $localarea && \
- $summer .) &
+ $summer . >&3) &
xspawned lsum
exec 3>&-
* Restrict copy to same file system (oops!).
* Nicer messages from remountrocp (-q to mkfs; various echoes).
- --
+ backup snaprsync fixes:
+ * Support --subdir= option, defaults to `.' (root of source fs).
+ * Correctly set up /var/lib/chiark-backup/snap-drop so drop works.
+ * Send output of local summer to fd 3 as required.
+
+ -- Ian Jackson <ian@davenant.greenend.org.uk> Sun, 30 Jul 2006 15:41:07 +0100
chiark-utils (4.1.2) unstable; urgency=low