chiark / gitweb /
fixes from testing on chiark
[chiark-utils.git] / backup / snaprsync
index 67716bbce66671c7e50d022d8dfeeeb29778fc1f..3238f392c624af47c90ac11e315691264351a6e0 100755 (executable)
@@ -50,11 +50,12 @@ done
 datefmt='%Y-%m-%d %H:%M:%S Z'
 rsync="rsync ${bwlimit:+--bwlimit} $bwlimit"
 export RSYNC_RSH='ssh -o compression=no'
+sshpfx='PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin; export PATH; '
 
-ssh $rhost "date -u '+$rhost $datefmt start'"
-ssh $rhost id
-ssh $rhost ls -d $rsharedir
-ssh $rhost ls -d $rvardir
+ssh $rhost "$sshpfx date -u '+$rhost $datefmt start'"
+ssh $rhost "$sshpfx id"
+ssh $rhost "$sshpfx ls -d $rsharedir"
+ssh $rhost "$sshpfx ls -d $rvardir"
 
 test -d $localarea || x mkdir $localarea
 ournode=`uname -n`
@@ -69,9 +70,10 @@ td=`mktemp -td`
 mkfifo -m 600 $td/sentinel
 exec 4<>$td/sentinel
 
-x ssh $rhost "$rsharedir/snap-drop"
-x ssh $rhost "$retcdir/snap/$snapkind snap $rvardir $device $mountpoint"
+x ssh $rhost "$sshpfx $rsharedir/snap-drop"
+x ssh $rhost "$sshpfx $retcdir/snap/$snapkind snap $rvardir $device $mountpoint"
 ssh $rhost <$td/sentinel 4<&- "
+  $sshpfx
   set -e
   date -u '+$rhost $datefmt main'
   exec 3<&0 0</dev/null
@@ -80,8 +82,7 @@ ssh $rhost <$td/sentinel 4<&- "
   umask 077
   exec 3>$rsumsfile
   cd snap-mount
-  $summer . | sort -t' ' -k2 >&3
-  test x\"\${PIPESTATUS[*]}\" = 'x0 0'
+  $summer . >&3
   date -u '+$rhost $datefmt sumsdone'
   cd ..
 " &
@@ -93,15 +94,14 @@ date -u "+ $datefmt rsyncdone"
 
 exec 3>$localarea,lsums
 (cd $localarea && \
- $summer . | sort -t'  ' -k2 >&3 && \
- test x"${PIPESTATUS[*]}" = 'x0 0') &
+ $summer .) &
 xspawned lsum
 exec 3>&-
 
 xwait rsum
 exec 4<&-
 date -u "+ $datefmt sumsdone"
-x ssh $rhost "$rsharedir/snap-drop"
+x ssh $rhost "$sshpfx $rsharedir/snap-drop"
 
 if [ "x${localprevious}" != x ]; then
        cp "$localprevious,rsums" "$localarea,rsums"
@@ -114,7 +114,7 @@ xwait $lsum
 date -u "+ $datefmt checking"
 
 set +e
-diff -u "$localarea,rsums" "$localarea,lsums" >"$localarea,sumsdiff"
+diff -u "$localarea,rsums" "$localarea,lsums" >"$localarea,sumsdiff"
 diffrc=$?
 set -e
 test $diffrc = 0 || test $diffrc = 1