No need for --delay-updates in standard rsync
[public/mirror.git] / csc-sync-debian
index 62d0afe..a1313ee 100755 (executable)
@@ -113,8 +113,10 @@ LOCK_TIMEOUT=360
 # uncomment the following lines (and edit the other file).
 
 # . ftpsync.conf
-# export RSYNC_PASSWORD
-# RSYNC_HOST=$RSYNC_USER@$RSYNC_HOST
+export RSYNC_PASSWORD
+if [[ "$RSYNC_USER" != "" ]]; then
+    RSYNC_HOST=$RSYNC_USER@$RSYNC_HOST
+fi
 
 #-----------------------------------------------------------------------------#
 
@@ -204,14 +206,14 @@ set +e
 
 # check if we need to sync
 if [[ "$TRACE_HOST" != "" ]]; then
-    TRACE_FILE=$TO/${TRACE_DIR}/${TRACE_HOST}
-    TRACE_PRE_DATE=`ls -al $TRACE_FILE`
-    rsync --recursive --times --verbose \
-        --address=$ADDRESS \
-        $RSYNC_HOST::$RSYNC_DIR/${TRACE_DIR}/ \
-        $TO/${TRACE_DIR}/ >> $LOGFILE 2>&1
-    TRACE_POST_DATE=`ls -al $TRACE_FILE`
-    if [ "$TRACE_PRE_DATE" = "$TRACE_POST_DATE" ]; then
+    TRACE_OLD_TIME=`stat -c%Y $TO/$TRACE_DIR/$TRACE_HOST 2> /dev/null`
+    TRACE_NEW_FILE=/tmp/$RSYNC_HOST_$RSYNC_DIR_$RANDOM
+    rsync --times --verbose --address=$ADDRESS \
+        $RSYNC_HOST::$RSYNC_DIR/$TRACE_DIR/$TRACE_HOST \
+        $TRACE_NEW_FILE >> $LOGFILE 2>&1
+    TRACE_NEW_TIME=`stat -c%Y $TRACE_NEW_FILE`
+    rm -f $TRACE_NEW_FILE
+    if [ "$TRACE_OLD_TIME" = "$TRACE_NEW_TIME" ]; then
         echo 'Trace file for' $RSYNC_HOST::$RSYNC_DIR \
             'unchanged, not rsyncing.' >> $LOGFILE
         exit 0