Fix orionroutes.py.
[public/mirror.git] / csc-sync-standard
index ea8b2de..1aa2be5 100755 (executable)
@@ -1,19 +1,19 @@
 #! /bin/bash
 
-if [[ $# != 3 ]]; then
+if [ $# -lt 3 ]; then
   echo 'Usage: sync local_dir rsync_host rsync_dir'
   exit 1
 fi
 
 set -e
 
-RSYNC="rsync"
 TOP_DIR=/mirror
 TO=$TOP_DIR/root/$1
 RSYNC_HOST=$2
 RSYNC_DIR=$3
 LOGDIR=/var/log/mirror/$1_$2
 ADDRESS=129.97.134.71
+EXTRA=$4
 
 mkdir -p $LOGDIR
 
@@ -79,7 +79,7 @@ if [ -f "$LOCK" ]; then
   if [ "`find $LOCK -maxdepth 1 -amin -$LOCK_TIMEOUT`" = "" ]; then
 # Note: this requires the procps ps; for other ps', adjust as necessary
     if ps ax | grep '[r]'sync | grep -q $RSYNC_HOST; then
-      echo "stale lock found, but a rsync is still running, aiee!" > /dev/stderr
+      echo "stale lock found, but a rsync is still running, aiee!" >&2
       exit 1
     else
       echo "stale lock found (not accessed in the last $LOCK_TIMEOUT minutes), forcing update!"
@@ -99,14 +99,15 @@ trap "rm -f $LOCK" exit
 set +e
 
 # Now sync the remaining stuff
-$RSYNC -rlHtv --delete \
+nice rsync -aHv --delete \
      --exclude "Archive-Update-in-Progress-${HOSTNAME}" \
-     --timeout=3600 --address=$ADDRESS $TMP_EXCLUDE \
+     --timeout=3600 -4 --address=$ADDRESS $TMP_EXCLUDE $EXTRA \
      $RSYNC_HOST::$RSYNC_DIR $TO >> $LOGFILE 2>&1
 if [[ "$?" != "0" ]]; then
     echo "ERROR: Help, something weird happened" | tee -a $LOGFILE
     echo "mirroring /pool exited with exitcode" $result | tee -a $LOGFILE
 fi
+chmod ug+rwx $TO
 
 savelog $LOGFILE >/dev/null