chiark / gitweb /
git-branchmove: new script, still work in progress
[chiark-utils.git] / backup / snaprsync
index 3b4bfc7954af9345580ca8b3c7436069856f20cd..82ea5d416f8ab1dc86349b2c7287a7a3dd886626 100755 (executable)
        bwlimit=
        subdir=.
        rsyncopts=
+       rsynccompress=z
        sshopts=
        summer=summer
 
+
+# snaprsync
+#
+# This file is part of chiark backup, a system for backing up GNU/Linux and
+# other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+#
+# chiark backup is:
+#  Copyright (C) 1997-1998,2000-2001,2007
+#                     Ian Jackson <ian@chiark.greenend.org.uk>
+#  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+#
+# This is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 3, or (at your option) any later version.
+#
+# This is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, consult the Free Software Foundation's
+# website at www.fsf.org, or the GNU Project website at www.gnu.org.
+
+
 set -e
 
 badusage () { echo >&2 "snaprsync: bad usage: $1"; exit 12; }
@@ -33,7 +59,7 @@ while true; do
                case "$name" in
                rhost|device|mountpoint|localarea);;
                localprevious|snapkind|rsharedir|retcdir|rvardir|bwlimit);;
-               subdir|rsyncopts|sshopts|summer);;
+               subdir|rsyncopts|rsynccompress|sshopts|summer);;
                *) badusage "unknown setting $name";;
                esac
                eval "$name=\$value"
@@ -66,7 +92,7 @@ ssh $sshopts $rhost "$sshpfx ls -d $rvardir"
 test -d $localarea || x mkdir $localarea
 ournode=`uname -n`
 rsumsfile=for-$ournode.sums
-summer="$summer -ACDbtqfx"
+summer="$summer -ACDBtqfx"
 
 td=/dev/enoent
 rc=12
@@ -76,8 +102,8 @@ td=`mktemp -td`
 mkfifo -m 600 $td/sentinel
 exec 4<>$td/sentinel
 
-x ssh $sshopts $rhost "$sshpfx $rsharedir/snap-drop"
-ssh $sshopts $rhost "
+x ssh $sshopts $rhost "$sshpfx $rsharedir/snap-drop $rvardir"
+ssh $sshopts $rhost "
        $sshpfx
        set -e
        cd $rvardir
@@ -100,7 +126,7 @@ ssh $sshopts $rhost <$td/sentinel 4<&- "
   cd ..
 " &
 xspawned rsum
-x $rsync -aHSxz --numeric-ids --delete $rsyncopts \
+x $rsync -aHSx$rsynccompress --numeric-ids --delete $rsyncopts \
        ${localprevious:+--link-dest} $localprevious \
        $rhost:$rvardir/snap-mount/$subdir $localarea/.
 date -u "+ $datefmt rsyncdone"
@@ -114,12 +140,12 @@ exec 3>&-
 xwait rsum
 exec 4<&-
 date -u "+ $datefmt sumsdone"
-x ssh $sshopts $rhost "$sshpfx $rsharedir/snap-drop"
+x ssh $sshopts $rhost "$sshpfx $rsharedir/snap-drop $rvardir"
 
 if [ "x${localprevious}" != x ] && test -f "$localprevious,rsums"; then
        cp "$localprevious,rsums" "$localarea,rsums"
 fi
-x $rsync -p \
+x $rsync -pI \
        $rhost:$rvardir/$rsumsfile \
        "$localarea,rsums"